это мой первый пост, так что извините, если я не соблюдаю надлежащие форматы/условия и т. д. на этом сайте. Я программирую всего несколько недель.
В любом случае, я пишу базовую программу на Java, используя логическую переменную и цикл while. Код, мягко говоря, очень «неуклюжий», и его определенно можно было бы сделать намного более элегантным (хотя и не с моим ограниченным набором навыков, так что еще раз приносим свои извинения). Если логическая переменная имеет значение true, код работает должным образом. Однако, если переменная ложна, код переходит в цикл while, и даже если вводится вход, который должен сделать утверждение истинным, цикл просто продолжается. Любые идеи, что вызывает этот бесконечный цикл. Я практически уверен, что это что-то основное, но я просто не могу понять это. Вот код ниже. Спасибо!
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 = a >= '1' && a <= '7' || b >= '1' && b <= '7' || c >= '1' && c <= '7' || d >= '1' && d <= '7'
- person BackSlash   schedule 05.04.2014