Следующий код создает ошибку времени выполнения, однако я не могу понять, что не так. Цикл while внутри кода не прекращается, и это вызывает ошибку времени выполнения (я предполагаю). Любая помощь будет принята с благодарностью.Ошибка бесконечного цикла Java
import java.lang.Math;
class Test
{
public static void main (String[] args) throws java.lang.Exception
{
int first = 0;
int sum = 0;
int second = 0;
while((((((sum!=4 || sum!=5) || sum!=6) || sum!=8) || sum!=9) || sum!=10)){
first = 1 + (int)(Math.random() * ((6 - 1) + 1));
second = 1 + (int)(Math.random() * ((6 - 1) + 1));
sum = first+second;
System.out.printf("Computer rolls a %d and a %d, for a total of %d.%n",first,second,sum);
}
}
}
, что во время выполнения? цикл может бесконечно бесконечно –
Так как сумма является только одним значением, 'sum! = 4 || sum! = 5' всегда будет успешным. Просто потому, что даже если 'sum' is' 4', это не '5' ... –
Шансы на это довольно низки, и rgettman понял это. Кроме того, знаки процента могут использоваться взаимозаменяемо как обратные косые черты – AJHacker