已编辑-已回答。这个问题已经回答。谢谢你们 是真棒!我不知道如何将问题标记为已解决/已回答, 我决定我将其添加。
最后的else语句将不会打印任何内容... 只是接受输入并停止程序。我在做什么错了?
我是一个全新的人,刚刚开始学习Java。没有任何代码的经验。抱歉。
尝试语法检查对于“我的菜鸟眼睛”来说一切都很好
import java.util.Scanner;
public class MyClass
{
public static void main(String[] args)
{
Scanner scn = new Scanner(System.in);
int x =7;
System.out.println("Enter a Number from 1 to 10: ");
int guess = scn.nextInt();
while(x != guess)
{
if(x < guess) {
System.out.println("Guess Lower...");
guess = scn.nextInt();
}
else if (x > guess) {
System.out.println("Guess Higher...");
guess = scn.nextInt();
}
else {
System.out.println("Correct Guess!");
}
}
}
}
所以如果我输入7 它应该说/显示 猜对了!
但是它什么也不会显示。
猜低和高的效果很好。
答案 0 :(得分:1)
比较正确的数字后,代码会立即退出while
循环,因此最后一个else
语句不可访问。
您可以按照以下方式做您想做的事情:
import java.util.Scanner;
public class MyClass
{
public static void main(String[] args)
{
Scanner scn = new Scanner(System.in);
int x =7;
System.out.println("Enter a Number from 1 to 10: ");
int guess = scn.nextInt();
while(x != guess) {
if(x < guess) {
System.out.println("Guess Lower...");
guess = scn.nextInt();
} else if (x > guess) {
System.out.println("Guess Higher...");
guess = scn.nextInt();
}
}
System.out.println("Correct Guess!");
}
}
答案 1 :(得分:1)
您应该将此代码System.out.println("Correct Guess!")
移出循环,因为它将一直循环直到找到要猜测的值,而无需转到代码的下一行。
pl请参见下面的代码。
Scanner scn = new Scanner(System.in);
int x = 7;
System.out.println("Enter a Number from 1 to 10: ");
int guess = scn.nextInt();
while (x != guess) {
if (x == guess)
System.out.println("correct");
else if (x < guess) {
System.out.println("Guess Lower...");
guess = scn.nextInt();
}
else if (x > guess) {
System.out.println("Guess Higher...");
guess = scn.nextInt();
}
}
System.out.println("correct");
}
答案 2 :(得分:1)
您的问题是while循环的条件。
看一下Recursión in Java
。
可以这样做:
import java.util.*;
public class MyClass
{
public static void main(String []args)
{
new_guess();
}
static void new_guess()
{
int correct_answer = 7;
Scanner scn = new Scanner(System.in);
System.out.println("Enter a Number from 1 to 10: ");
int guess = scn.nextInt();
if(correct_answer != guess)
{
if(correct_answer < guess)
{
System.out.println("Guess Lower...");
}
else if (correct_answer > guess)
{
System.out.println("Guess Higher...");
}
new_guess();
}
else
{
System.out.println("Correct Guess!");
}
}
}
答案 3 :(得分:1)
它是一个while循环,一直运行直到指定的表达式为假,因此您无需引入else块来“确认”猜测变量的相等性。当您的表达式返回false时,它将自动打印出下一步。
while(x != guess)
{
if(x < guess) {
System.out.println("Guess Lower...");
guess = scn.nextInt();
}
else if (x > guess) {
System.out.println("Guess Higher...");
guess = scn.nextInt();
}
}
System.out.println("correct!");
}
基本上,您的代码应采用这种方式进行修改