如何在 java 的嵌套循环内中断 if 语句
How to break if statement inside nested loop in java
为什么我的代码在到达 if 语句时不停止,我想在 break 语句调用后跳出所有循环,谢谢,抱歉我的英语不好
for (int i = 0;i<nums.length;i++){
for (int j = 0; j <nums.length;j++){
if(i!=j){
System.out.print(i+" "+j+" ");System.out.println("Value : "+nums[i]+" "+nums[j]);
sum = nums[i]+nums[j];
if(sum==target){
System.out.println("Result : "+nums[i]+" "+nums[j]);
finalArray[0] = i;
finalArray[1] = j;
break;
}
}
}
}
}
}
你可以这样做:
outer:
for (int i = 0;i<nums.length;i++){
for (int j = 0; j <nums.length;j++){
if(i!=j){
System.out.print(i+" "+j+" ");System.out.println("Value : "+nums[i]+" "+nums[j]);
sum = nums[i]+nums[j];
if(sum==target){
System.out.println("Result : "+nums[i]+" "+nums[j]);
finalArray[0] = i;
finalArray[1] = j;
break outer;
}
}
}
}
你可以用任何你想要的替换outer
。
您可以使用标签来引用这样的循环:
loop1:
for (int i = 0;i<nums.length;i++){
for (int j = 0; j <nums.length;j++){
if(i!=j){
System.out.print(i+" "+j+" ");System.out.println("Value : "+nums[i]+" "+nums[j]);
sum = nums[i]+nums[j];
if(sum==target){
System.out.println("Result : "+nums[i]+" "+nums[j]);
finalArray[0] = i;
finalArray[1] = j;
break loop1;
}
}
}
}
}
当你想跳出外循环时,尝试在内循环中设置一个标志。
一旦内循环中断,检查是否设置了该标志,如果是,也从外循环中断。像这样:
boolean break_outer = false
for (int i = 0;i<nums.length;i++){
for (int j = 0; j <nums.length;j++){
if(i!=j){
System.out.print(i+" "+j+" ");System.out.println("Value : "+nums[i]+" "+nums[j]);
sum = nums[i]+nums[j];
if(sum==target){
System.out.println("Result : "+nums[i]+" "+nums[j]);
finalArray[0] = i;
finalArray[1] = j;
break_outer = true
break;
}
}
}
if (break_outer)
break;
}
你已经有相当多的代码了。它似乎正在为您提供一些非常具体的东西。你可以把它变成一个方法并让它 return 那个点的值。
2美分
我不确定我有足够的信息来编写代码。不过,我想试试。运气好的话,它会给你一些你需要的东西:
private int[] convertToFinalArray(int[] nums, int target) {
int sum = 0;
int[] finalArray = new int[nums.length]; // I am inferring the length.
for(int i = 0;i<nums.length; i++) {
for (int j = 0; j < nums.length; j++) {
if (i != j) {
System.out.print(i + " " + j + " ");
System.out.println("Value : " + nums[i] + " " + nums[j]);
sum = nums[i] + nums[j];
if (sum == target) {
System.out.println("Result : " + nums[i] + " " + nums[j]);
finalArray[0] = i;
finalArray[1] = j;
return finalArray;
}
}
}
}
return finalArray;
}```
为什么我的代码在到达 if 语句时不停止,我想在 break 语句调用后跳出所有循环,谢谢,抱歉我的英语不好
for (int i = 0;i<nums.length;i++){
for (int j = 0; j <nums.length;j++){
if(i!=j){
System.out.print(i+" "+j+" ");System.out.println("Value : "+nums[i]+" "+nums[j]);
sum = nums[i]+nums[j];
if(sum==target){
System.out.println("Result : "+nums[i]+" "+nums[j]);
finalArray[0] = i;
finalArray[1] = j;
break;
}
}
}
}
}
}
你可以这样做:
outer:
for (int i = 0;i<nums.length;i++){
for (int j = 0; j <nums.length;j++){
if(i!=j){
System.out.print(i+" "+j+" ");System.out.println("Value : "+nums[i]+" "+nums[j]);
sum = nums[i]+nums[j];
if(sum==target){
System.out.println("Result : "+nums[i]+" "+nums[j]);
finalArray[0] = i;
finalArray[1] = j;
break outer;
}
}
}
}
你可以用任何你想要的替换outer
。
您可以使用标签来引用这样的循环:
loop1:
for (int i = 0;i<nums.length;i++){
for (int j = 0; j <nums.length;j++){
if(i!=j){
System.out.print(i+" "+j+" ");System.out.println("Value : "+nums[i]+" "+nums[j]);
sum = nums[i]+nums[j];
if(sum==target){
System.out.println("Result : "+nums[i]+" "+nums[j]);
finalArray[0] = i;
finalArray[1] = j;
break loop1;
}
}
}
}
}
当你想跳出外循环时,尝试在内循环中设置一个标志。 一旦内循环中断,检查是否设置了该标志,如果是,也从外循环中断。像这样:
boolean break_outer = false
for (int i = 0;i<nums.length;i++){
for (int j = 0; j <nums.length;j++){
if(i!=j){
System.out.print(i+" "+j+" ");System.out.println("Value : "+nums[i]+" "+nums[j]);
sum = nums[i]+nums[j];
if(sum==target){
System.out.println("Result : "+nums[i]+" "+nums[j]);
finalArray[0] = i;
finalArray[1] = j;
break_outer = true
break;
}
}
}
if (break_outer)
break;
}
你已经有相当多的代码了。它似乎正在为您提供一些非常具体的东西。你可以把它变成一个方法并让它 return 那个点的值。
2美分
我不确定我有足够的信息来编写代码。不过,我想试试。运气好的话,它会给你一些你需要的东西:
private int[] convertToFinalArray(int[] nums, int target) {
int sum = 0;
int[] finalArray = new int[nums.length]; // I am inferring the length.
for(int i = 0;i<nums.length; i++) {
for (int j = 0; j < nums.length; j++) {
if (i != j) {
System.out.print(i + " " + j + " ");
System.out.println("Value : " + nums[i] + " " + nums[j]);
sum = nums[i] + nums[j];
if (sum == target) {
System.out.println("Result : " + nums[i] + " " + nums[j]);
finalArray[0] = i;
finalArray[1] = j;
return finalArray;
}
}
}
}
return finalArray;
}```