我需要在我的程序中使用以下内容,而不确定如何使其工作。
要求用户输入他们的名字(字符串变量)和年龄(int 变量)。
另外,我需要使用printf语句显示他们的姓名,年龄和欢迎信息。
这是我到目前为止所拥有的。谁能帮我?请
package myfirstprogram;
import java.util.Scanner;
public class MyFirstProgram {
public static void main(String[] args) {
String name;
int age;
Scanner sc = new Scanner(System.in);
System.out.printf("Please Type Your Name then press the Enter key.");
System.out.printf("Please Type Your Age then press the Enter Key.");
name = sc.next();
age = sc.next();
System.out.printf("Hello. My name is " + name + ", I am pleased to meet you.");
System.out.printf("Your Age is " + age);
System.out.printf("Hello and Welcome, " + name);
}
}
答案 0 :(得分:1)
您是否尝试编译代码以查看其中包含的错误?
您是否正在使用GUI程序(如Eclipse等)来编译代码?或command-line上的javac
?无论哪种方式,您的代码都会编译错误:
javac myfirstprogram/MyFirstProgram.java
myfirstprogram/MyFirstProgram.java:17: incompatible types
found : java.lang.String
required: int
age = sc.next();
^
1 error
这就是说,正如shmosel和其他人在评论中正确指出的那样,Scanner.next()
会返回一个字符串,当你获得用户的name
输入时,这是很好的。输入String
,但由于您已将age
定义为age
,因此对int
输入不起作用。
所以要#34;让它工作"你需要做的,因为编译器指示将第17行更改为:
age = sc.nextInt();
然后你的程序应该"工作"如你所料。
希望这有帮助!
答案 1 :(得分:0)
我会尝试这样的事情:
public static void main(String[] args) {
String name;
int age;
Scanner sc = new Scanner(System.in);
System.out.printf("Please enter your name");
name = sc.next();
System.out.printf("Please enter your age");
age = sc.nextInt();
System.out.printf("Hello " + name + "\nYour age is: " + age);
sc.close();
}
此代码工作的原因是,正如其他人所说,age变量是一个整数,而不是String(sc.next()返回的内容)。此外,分离这两个问题要容易得多,因为这样程序可以很容易地区分输入的年龄和名称。
如果您希望它更多一些失败证明,您可以抛出一个异常,检查用户是否未将String作为整数输入。
查看库在Java中如何工作的好地方是Stackoverflow和Java API网站(取决于您的Java版本,有不同的站点)
Java™ Platform, Standard Edition 7 API Specification
Java™ Platform, Standard Edition 8 API Specification
如果您需要Java中的任何其他内容的帮助,并且上述内容很复杂,请尝试以下网站:
祝你好运!