Извините, я новичок в Java, поэтому этот вопрос может быть неясным.В чем разница между while (x = false) и while (! X) в Java?
Я недавно занимался включением инструкции try и catch в цикл while, потому что я хотел удостовериться, что ввод данных был заключен из остальной части программы.
У меня возникла проблема с использованием восклицательного знака (!) Перед переменной в условиях while (например, while (! Done)) вместо использования = false (например, while (done = false)) изменяется как работает моя программа.
Бывший (! Done) результат в операторах try и except, выполняющихся как ожидалось. Последний (done = false) не просто пропустил их и перешел к следующей части кода.
У меня было впечатление, что! перед переменной означало то же самое, что и var = false.
Я ошибаюсь?
Вот пример:
import java.util.Scanner;
public class TestOne {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
int num;
boolean inputDone = false;
while (!inputDone) {
try {
System.out.print("Enter in a number here: ");
num = input.nextInt();
inputDone = true;
}
catch (Exception e) {
System.out.println(e);
System.exit(0);
}
}
System.out.println("Success!");
}
}
В настоящее время компиляции и запуска программы будет идти гладко: он предложит мне за номер, набрав в письме или очень длинное число заставляет его распечатать тип исключения и выйти. Ввод в обычное число приводит к печати Успеха!
С другой стороны, если бы я был заменен! InputDone с inputDone = false, он просто распечатывает успех! когда я запускаю программу.
Может кто-нибудь объяснить разницу мне между! и = ложные утверждения в цикле while?
х == ложь плохой стиль, почти так же плохо, как и х == верно. – starblue
Мне нравится, что опечатка в заголовке вопроса является причиной того, что никогда не писал 'lvalue == false' –