提问人:dietCokeIsTheDevil 提问时间:4/14/2023 更新时间:4/14/2023 访问量:59
Java:尝试使用 while 循环来检查扫描仪输入中是否有 int 变量,不确定如何初始化变量?
Java: Trying to use a while loop to check scanner input for an int variable, not sure how to initialize the variable?
问:
这是我自己编写的第一批程序之一。我正在编写一个程序来告诉你你的星座是什么,我让程序使用我导入的扫描仪方法运行,但我遇到的问题是现在我试图使用 while 循环检查用户输入,它没有按我的预期运行,当我编译我的代码时,我遇到的错误是我的 int 类型的变量未初始化。我在声明它没有赋值时写了它,我不确定我应该分配什么来解决这个问题。
导入 java.util.Scanner;
公共类 MyStarSign {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in); // Create a Scanner object
System.out.println("What month were you born?");
String birthMonth = "";
birthMonth= myScanner.next(); // Read user input
System.out.println("You were born in " + birthMonth + "?"); // Output user input
System.out.println("What day of the month were you born?");
int birthDay;
while (birthDay > 31) {
System.out.println("Please enter a valid day of the month");
birthDay = myScanner.nextInt();
}
这就是我的代码现在的样子^^
现在对于我尝试的解决方案:
int birthDay = myScanner.nextInt();
while (birthDay > 31) {
System.out.println("Please enter a valid day of the month");
birthDay = myScanner.nextInt();
}
这是我试图解决这个问题的方法,尽管我在编译代码时再次遇到同样的问题
答:
0赞
Benevos
4/14/2023
#1
Initialize 意味着它需要有一个初始值,如下所示:
int birthDay = 0;
因此,您唯一需要做的就是为变量添加一个值
编辑:试试这个代码
import java.util.Scanner;
public class MyStarSign
{
public static void main(String[] args)
{
Scanner myScanner = new Scanner(System.in); // Create a Scanner object
System.out.println("What month were you born?");
String birthMonth = "";
birthMonth= myScanner.next(); // Read user input
System.out.println("You were born in " + birthMonth + "?"); // Output user input
System.out.println("What day of the month were you born?");
int birthDay = 0;
while (birthDay > 31)
{
System.out.println("Please enter a valid day of the month");
birthDay = myScanner.nextInt();
}
}
}
评论
0赞
dietCokeIsTheDevil
4/14/2023
自从发布这个问题以来,我也尝试过,但我遇到了同样的错误。但我怀疑它现在来自另一个问题,因为在我的终端中,当我编译代码时,即使在删除 while 循环后,它也会给我同样的错误,即使我确保保存我的代码,它也指向不再存在的 while 循环
0赞
Benevos
4/14/2023
你是如何编译代码的?您使用的是哪个 IDE 或编辑器?您确定要保存更改吗?显示哪个错误?我确实复制了您的代码来运行它。问题可能出在这一点上
0赞
Benevos
4/14/2023
在您的代码中缺少括号,我假设您只是忘记了它们,但我会添加一个我测试过的代码供您复制并运行
0赞
dietCokeIsTheDevil
4/14/2023
我相对确定它没有缺少括号,在添加 while 循环之前,程序运行良好,没有问题并且按预期工作,while 循环是我今晚打开文本编辑器以来唯一接触过的东西
0赞
dietCokeIsTheDevil
4/14/2023
我只是使用 javac 编译它MyStarSign.java
0赞
Nitin Magadum
4/14/2023
#2
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in); // Create a Scanner object
System.out.println("What month were you born?");
String birthMonth = "";
birthMonth= myScanner.next(); // Read user input
System.out.println("You were born in " + birthMonth + "?"); // Output user input
System.out.println("What day of the month were you born?");
int birthDay;
birthDay = myScanner.nextInt();
while (birthDay > 31) {
System.out.println("Please enter a valid day of the month");
birthDay = myScanner.nextInt();
}
}
评论
0赞
seenukarthi
4/14/2023
与其只是发布代码,不如解释它的作用以及它如何回答问题。
评论