Открытый класс Array {public static void main (String [] args) {int [] arr = {5,6,9, -5, -2,4, -3,1, -1}; int я = 0; int n = длина обр. int j = n-1; ...
2 ответа
break
выходит из ближайшего внутреннего цикла, в котором оно находится, в вашем случае while(arr[j]<0 && i<j)
. Это означает, что ваш while(true)
- бесконечный цикл.
Вы можете исправить это, установив флаг, который вызовет внешний разрыв:
boolean goOn = true;
while(goOn)
while(goOn && arr[i]>0 && i<j) {
while(goOn && arr[j]<0 && i<j) {
if(i<j) {
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
i++;
j--;
}else {
goOn = false;
break;
}
}
}
for(int x=0;x<arr.length;x++) {
System.out.print(arr[x]+" "); //unreachable code
}
Или создайте ярлык и break
там:
while(true)
while(arr[i]>0 && i<j) {
while(arr[j]<0 && i<j) {
if(i<j) {
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
i++;
j--;
}else {
break exit;
}
}
}
exit:
for(int x=0;x<arr.length;x++) {
System.out.print(arr[x]+" "); //unreachable code
}
Последняя функция редко используется в Java.
Это все из-за этой строчки кода:
while(true)
Остальная часть кода в цикле for станет недоступной, поскольку первый цикл while не будет завершен, что приведет к тому, что ваша программа будет работать в бесконечном цикле.
Недоступный код:
for(int x=0;x<arr.length;x++) {
System.out.print(arr[x]+" "); //unreachable code
}
Чтобы исправить это, вам нужно установить переменную для условия first while , которая каким-то образом изменяет значение при выполнении условия. Исходя из вашего кода, вы можете разместить его в части кода else
:
boolean run = true;
while(run) {
while(arr[i]>0 && i<j) {
while(arr[j]<0 && i<j) {
if(i<j) {
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
i++;
j--;
} else {
run = false;
break;
}
}
}
}
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].