我的代码没有用

时间:2014-11-22 09:20:28

标签: java if-statement

我是初学程序员,我正在为我父亲尝试一个程序。

import java.util.*;
import java.lang.*;
import java.io.*;
class Employee
{

    String m1,m2,m3,m4,m5,m6,m7;
    void main()
    {
         Scanner w=new Scanner(System.in);
         Scanner n=new Scanner(System.in);
         System.out.println("Please enter your name ");
         String name=w.nextLine();
         System.out.println("Please choose your client");
         System.out.println("1 - XXXXXX");
         int client=n.nextInt();
         m1=name;//Storing name
         if(client==1)//If statement storing client
        {  
              m2="XXXXXX";
   }
    else
    {
        System.out.println("You have entered a wrong choice");
        return;
    }

    String msg=m1+"\t"+m2;
    System.out.println(msg);
}

}

此代码将输出“因为您选择了错误的选项” 它跳到elsse声明。什么是错误,是否有更简单的方法来运行此程序。谢谢 你可以告诉我我的错误

4 个答案:

答案 0 :(得分:1)

好的,试试这段代码:

    import java.util.Scanner;

public class Try
{

    static String m1,m2,m3,m4,m5,m6,m7;
    public static void main(String[] args)
    {
         Scanner w=new Scanner(System.in);

         System.out.println("Please enter your name ");
         String name=w.nextLine();
         System.out.println("Please choose your client");
         System.out.println("1 - XXXXXX");
         int client=w.nextInt();
         m1=name;//Storing name
         if(client==1)//If statement storing client
        {  
              m2="XXXXXX";
   }
    else
    {
        System.out.println("You have entered a wrong choice");
        return;
    }

    String msg=m1+"\t"+m2;
    System.out.println(msg);
}

}

答案 1 :(得分:0)

您错过了主要方法签名。在Java中,有一个main方法的规范。你的主要方法应该是

public static void main(String []args){
}

在你的情况下,你的主要方法应该是

public static void main(String args[]) {
    String m1, m2, m3, m4, m5, m6, m7;
    Scanner w = new Scanner(System.in);
    Scanner n = new Scanner(System.in);
    System.out.println("Please enter your name ");
    String name = w.nextLine();
    System.out.println("Please choose your client");
    System.out.println("1 - XXXXXX");
    int client = n.nextInt();
    m1 = name;//Storing name
    if (client == 1)//If statement storing client
    {
        m2 = "XXXXXX";
    } else {
        System.out.println("You have entered a wrong choice");
        return;
    }

    String msg = m1 + "\t" + m2;
    System.out.println(msg);
}

答案 2 :(得分:0)

你的问题是2个扫描仪。 因为扫描器使用迭代器来保持位置在给定的输入流内(在这种情况下),当你实例化2个扫描器时,它们都将它们的迭代器设置在流中的相同位置,然后你使用" w .nextLine();",并且第一个扫描程序按照您的意愿通过返回第一行的流前进,但是您尚未使用的第二个扫描程序仍在流的开头,所以基本上当你使用n.nextInt();时,扫描程序会尝试将你的名字解析为int,并且奇怪的是它不会抛出一个InputMismatchException,因为它应该这样做(" { {3}}&#34)。 按照@Sarthak Mittal的建议重做你的代码,它应该可以工作。

PS:请记住缩进,这很重要,真的

答案 3 :(得分:0)

首先:

void main()

Java中没有这样的东西。它应该是,

public static void main(String[] args)

要了解publicstaticString[] args的含义,请阅读以下内容:Explanation of 'String args[]' and static in 'public static void main(String[] args)'

其次,

int client = n.nextInt();

client内的值取决于您的输入。如果您输入23而非1,则您的代码肯定会转到else部分。因此,请确保您的输入为1

第三,

摆脱额外的扫描仪。你只需要一个。

其余代码没问题。