我是初学程序员,我正在为我父亲尝试一个程序。
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声明。什么是错误,是否有更简单的方法来运行此程序。谢谢 你可以告诉我我的错误
答案 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)
要了解public
,static
,String[] args
的含义,请阅读以下内容:Explanation of 'String args[]' and static in 'public static void main(String[] args)'
其次,
int client = n.nextInt();
client
内的值取决于您的输入。如果您输入2
或3
而非1
,则您的代码肯定会转到else
部分。因此,请确保您的输入为1
。
第三,
摆脱额外的扫描仪。你只需要一个。
其余代码没问题。