Я не уверен, какое именно поведение вы ищете, но есть три аналогичных варианта написания вашего примера цикла, в зависимости от того, как вы хотите, чтобы два условия вели себя:
Или
while(a != 5 || b != true) {
a++;
}
Цикл будет продолжаться, если: a != 5
оценивает "true" или b!= true
оценивает "true" или оба a != 5
и b!= true
оценивают "true".В первый раз, когда оба выражения оценятся как "ложные", цикл завершится.
И
while(a != 5 && b != true) {
a++;
}
Цикл продолжится, если обаa != 5
и b!= true
оценивают «истина».В первый раз, когда одно или оба из этих выражений оцениваются как "ложные", цикл завершится.
XOR
while((a != 5 && b != true) || (a == 5 && b == true )) {
a++;
}
Циклбудет продолжаться, если оба значения a != 5
и b!= true
оценят значение «истина», или оба значения оценят «ложь».В первый раз, когда точно one , эти два выражения оцениваются как "ложь", цикл завершится.