当前位置: 首页 > 知识库问答 >
问题:

Java如何使用用户的布尔输入结束do-while循环?

南宫凡
2023-03-14

所以我想让用户输入“true”或“false”来退出循环。现在,无论我输入什么,它都会退出循环。

public static void main(String[] args) {
    // Color guard flags
    Scanner kb = new Scanner(System.in);
    Flag yourFlag;
    double weight;
    boolean correct;
    do {
        System.out.println("Hello!\nWhat colors are your silk? (most common two)\nHow long is your pole (in feet)?"
                + "\nWhat have you named your flag?\nHow heavy is your flag (in pounds)?");
        yourFlag = new Flag(kb.next(), kb.next(), kb.nextInt(), kb.next(), kb.nextDouble());
        if (yourFlag.getWeight() >= 7) {
            System.out.println("That sounds like a cool flag! It sounds pretty heavy though.");
        } else {
            System.out.println("That sounds like a cool flag!");
        }
        System.out.println("You've entered that your flag " + yourFlag.getName() + " is " + yourFlag.getWeight() + " pounds and "
                + yourFlag.lengthOfPole + " feet long. It also has the pretty colors " + yourFlag.silkColor1 + " and " + yourFlag.silkColor2);
        System.out.println("Is that correct? (True or flase)");
        correct = kb.nextBoolean();
    }
    while (correct = false);

顺便说一句,这是一个关于色彩卫士的节目

共有1个答案

宗政英才
2023-03-14

correct=false是一个赋值。

你应该使用!correct测试correct是否为false

示例代码;

do {
    //
}
while(!correct);
//while(correct == false)

如果你想换一种方式

do {
    //
}
while(correct);
//while(correct == true)
 类似资料:
  • 我正在尝试编写一个程序,允许在无限循环中生成随机数。如果用户按下'c',它将脱离循环。但是循环只在我按下c时开始,它应该在之前开始,当我按下'c'时它应该停止。 另外,我想知道如何才能只使用while循环而不是do-while循环来完成这个程序。当我使用while时,我从开始,然后使用来自input的if语句中断循环,但这也不起作用。内部仍然有两个for循环。 多谢

  • 我试图创建一个简短的基于文本的冒险游戏使用Java。 我是一个初学的程序员,所以我的方法可能不是最有效的,但我只使用了我从学校课程中学到的东西。 为什么会出现这个问题?我不知道我做错了什么。 谢了!

  • 论坛的新成员。试着搜索,但找不到任何有用的东西。我在另一个使用Java1.7的IDE上运行了这段代码,没有问题。我现在正在使用Eclipse并将java更新到1.8,并且在行“response=input.nextline();”时得到错误:java.util.NoSuchelementException。奇怪的是,我有另一个函数返回一个字符串,并使用完全相同的循环(do/while进行模式检查)

  • 我正在设置一个,它在用户输入整数之前一直执行。但是,按照我现在的方式,循环在输入整数后再次打印消息,然后程序正常执行。有人能建议一种方法来使输入整数后不再打印该消息吗?谢了!

  • 我已经尝试了一些while循环的方法,但似乎无法让它工作。我想一直请求用户输入,直到用户输入数字0为止,以下是我到目前为止的代码:

  • 我想写一个程序,把每4位数字的每一位相加。例如,我从1000开始,加上1001,千变成2,百变成0,十变成0,单位变成1。这将持续增加每个数字,直到达到9999。这是我的代码,它只输出9999。