简单命令行程序中的java奇怪行为

i7uaboj4  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(335)

这个问题在这里已经有答案了

如何比较java中的字符串(23个答案)
4个月前关门了。
我正在尝试创建一个java猜谜游戏,但是我正在处理的第一部分是有问题,我希望得到一些帮助。程序首先要求用户输入一个数字,然后要求用户确认他们的数字是否是他们输入的数字。
如果他们输入的数字是否正确,则当前只输出“bru”。如果没有输入,然后他们重新输入输入号码和循环将继续,直到用户正确地输入他们的号码,并确认它。我想用一个 while 循环。
不幸的是,当我运行程序时,一切正常,直到我被要求输入yes或no来确认我的号码。如果我输入yes,它仍然要求我重新输入号码。但是如果我输入no,然后我再次说no,确认我的号码,当我确认输入了正确的号码时,它会给我输出。

import java.util.Scanner;
import java.util.Random;

public class Assignment6 {

    public static void main(String args[]) {
        Scanner input = new Scanner( System.in );
        System.out.print ( "Please enter the upper bound of the secret number.");
        int UpperBound = input.nextInt();
        System.out.print ( "The UpperBound you entered is" + " " + UpperBound + "." + "Is that correct?" + "" + "If yes please enter yes, if not please enter no.");
        String TrueOrFalse = input.next();
        while (TrueOrFalse == "no" | TrueOrFalse == "No");
        {
            System.out.print ( "Please enter the new upper bound of the secret number.");
            UpperBound = input.nextInt();
            System.out.print ( "The UpperBound you entered is" + " " + UpperBound + "." + " " + "Is that correct. If yes please enter yes, if not please enter no.");
            TrueOrFalse = input.next();
        }
        System.out.print ("Bru");
    }
}
a14dhokn

a14dhokn1#

代替

while (TrueOrFalse == "no" | TrueOrFalse == "No");

具有

while(TrueOrFalse.equalsIgnoreCase("no"))

i、 e.移除 ; 从那时起
如果可能,还可以重命名您的变量 TrueOrFalse

cl25kdpy

cl25kdpy2#

你的主要问题是 ; 比较字符串 equals and == .
你还需要检查 nextInt() and nextLine() 尝试下面的代码,它会帮助你。

public static void main(String args[]) {
        Scanner input = new Scanner( System.in );
        System.out.print ( "Please enter the upper bound of the secret number.");
        int UpperBound = Integer.valueOf(input.nextLine());
        System.out.print ( "The UpperBound you entered is" + " " + UpperBound + "." + "Is that correct?" + "" + "If yes please enter yes, if not please enter no.");
        String TrueOrFalse = input.nextLine();
        while (TrueOrFalse.equalsIgnoreCase("no"))
        {
            System.out.print ( "Please enter the new upper bound of the secret number.");
            UpperBound = Integer.valueOf(input.nextLine());
            System.out.print ( "The UpperBound you entered is" + " " + UpperBound + "." + " " + "Is that correct. If yes please enter yes, if not please enter no.");
            TrueOrFalse = input.nextLine();
        }
        System.out.print ("Bru");
    }

相关问题