所以我刚刚下载了Eclipse,目前我正在9年级的计算机编程课程中,所以我不太了解。我在课前编码,所以我有点领先。我今天生病了,发现了Eclipse,我开始使用它并测试它。这也是为什么你会在那里看到Hello World语句的原因。我被带走并开始制作更多代码。我想在我的代码中添加一些if语句,但我不确定如何正确使用它们。在
行 System.out.println("So your name is... " + name + ". Right?");
yes = scan.nextLine();
if ("Yes" != null)
{
System.out.println("Great!");
if ("No" != null)
{
System.out.println("Oh. Please retype it.");
no = scan.nextLine();
}
}
我不知道为什么,但输出是,Hello World! 请输入您的姓名 - > 贾斯汀 请输入您的年龄 - > 15 请输入您出生的那一年 - > 1999年 所以你的名字是......贾斯汀。对? 没有 大! 哦。请重新输入。
你可以看到我输入了no,但它仍然给了我回报,好像我也输入了Yes。我怎样才能解决这个问题?提前谢谢!
import java.util.Scanner;
public class helloworld_main {
private static Scanner scan;
public static void main(String args[])
{
System.out.println("Hello World!");
scan = new Scanner(System.in);
String name, age, year, yes, no;
System.out.println("Please enter your name --> ");
name = scan.nextLine();
System.out.println("Please enter your age --> ");
age = scan.nextLine();
System.out.println("Please enter the year you were born --> ");
year = scan.nextLine();
System.out.println("So your name is... " + name + ". Right?");
yes = scan.nextLine();
if ("Yes" != null)
{
System.out.println("Great!");
if ("No" != null)
{
System.out.println("Oh. Please retype it.");
no = scan.nextLine();
}
}
System.out.println("The age you entered is..." + age + ". Right?");
System.out.println("The year you were born is... " + year + ". Right?");
scan.close();
}
}
答案 0 :(得分:3)
问题在于以下代码:
if ("Yes" != null)
{
System.out.println("Great!");
if ("No" != null)
{
System.out.println("Oh. Please retype it.");
no = scan.nextLine();
}
}
请改为尝试:
if ("Yes".equals(yes)) {
System.out.println("Great!");
} else {
System.out.println("Oh. Please retype it.");
no = scan.nextLine();
}
虽然这可以解决您的问题,但它无法实现您的目标。一旦用户输入了错误的名称,您希望他再次输入该名称并再次询问他是否是他的正确名称。你不想继续这样做,直到用户键入"是"。这给你一个线索。使用do-while循环。
答案 1 :(得分:0)
条件("Yes" != null)
始终为true
。请注意"是"是一个String,显然不是null。
如果要检查变量yes的值,请尝试
if (yes.equals("Yes")) ...
答案 2 :(得分:0)
验证“是”时,您不是指yes
变量。
System.out.println("So your name is... " + name + ". Right?");
yes = scan.nextLine();
if ("Yes" != null)
{
System.out.println("Great!");
if ("No" != null)
{
System.out.println("Oh. Please retype it.");
no = scan.nextLine();
}
}
您实际上正在创建具有值Yes和No的新String对象,并检查它们是否为空,它们永远不会。
你想做的是
System.out.println(“所以你的名字是......”+名字+“。对吧?”); 是= scan.nextLine();
if (yes != null)
{
System.out.println("Great!");
if (no != null)
{
System.out.println("Oh. Please retype it.");
no = scan.nextLine();
}
}
你的节目不合逻辑,我想你真正想要的是
Scanner sc = new Scanner(System.out);
String result = sc .nextLine();
do
{
if("Yes".equals(result))
{
System.out.println("Great!");
}
else if ("No".equals(result))
{
System.out.println("Oh. Please retype it.");
result = sc.nextLine();
}
} while(!"Yes".equals(result));