gpt4 book ai didi

java - Java中涉及 boolean 变量的无限while循环

转载 作者:行者123 更新时间:2023-11-30 03:57:11 24 4
gpt4 key购买 nike

这是我的第一篇文章,因此,如果我未能遵循本网站上正确的格式/约定等,请深表歉意。我才开始编程几周。

无论如何,我正在使用 boolean 变量和 while 循环编写一个基本的 Java 程序。至少可以说,该代码非常“笨重”,并且肯定可以变得更加优雅(尽管我的技能有限,所以再次道歉)。 如果 boolean 变量为 true,则代码将按预期运行。但是,如果变量为 false,则代码将进入 while 循环,即使放入了应使语句为 true 的输入,循环也会继续进行。 任何想法导致此无限循环的原因。我几乎确定这是基本的东西,但我似乎无法弄清楚。这是下面的代码。谢谢!

import java.util.Scanner;
import java.util.Random;
import static java.lang.System.out;
import static java.lang.System.in;

public class MB1 {
public static void main(String args[]){
char a, b, c, d;
Scanner myScanner = new Scanner(in);
boolean secondBoolean;

out.println("Let's get started! Type in your 4-digit code:");
a = myScanner.findWithinHorizon(".", 0).charAt(0);
b = myScanner.findWithinHorizon(".", 0).charAt(0);
c = myScanner.findWithinHorizon(".", 0).charAt(0);
d = myScanner.findWithinHorizon(".", 0).charAt(0);

secondBoolean = ((a == '1'|| a == '2'|| a == '3' || a == '4' || a == '5' || a == '6' || a == '7')
&& (b == '1' || b == '2'|| b == '3' || b == '4' || b == '5' || b == '6' || b == '7')
&& (c == '1' || c == '2'|| c == '3' || c == '4' || c == '5' || c == '6' || c == '7')
&& (d == '1' || d == '2'|| d == '3' || d == '4' || d == '5' || d == '6' || d == '7'));

while (secondBoolean == false) {
out.println("The code you typed is not valid. Please type a different code:");
a = myScanner.findWithinHorizon(".", 0).charAt(0);
b = myScanner.findWithinHorizon(".", 0).charAt(0);
c = myScanner.findWithinHorizon(".", 0).charAt(0);
d = myScanner.findWithinHorizon(".", 0).charAt(0);
out.print(a);out.print(b);out.print(c);out.print(d);
}
if (secondBoolean == true){
out.println('0');
}
}
}

最佳答案

您处于无限循环中,因为您从未更改secondBoolean的值。您应该在 while 循环中执行此操作。

另外,不要忘记在循环之前初始化 secondBoolean 变量(设置 secondBoolean = false,以便循环至少运行一次)。

关于java - Java中涉及 boolean 变量的无限while循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22874439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com