[英]Why is the last else statement not printing/executing here?
最后一個 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 它應該說/顯示正確的猜測!
但它不會顯示任何東西。
猜測低和高工作正常。
當比較正確的數字時,代碼立即轉義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!");
}
}
您應該將這段代碼System.out.println("Correct Guess!")
從循環中取出,因為它會一直循環直到找到猜測的值,而不會轉到代碼的下一行。
請參考下面的代碼。
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");
}
你的問題是 while 循環的條件。 看看Recursión in Java
中的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!");
}
}
}
它是一個 while 循環,它一直運行直到指定的表達式為 false,因此您不需要引入 else 塊來“確認”guess 變量的相等性。 當您的表達式返回 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!");
}
基本上你的代碼應該以這種方式進行改革
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.