[英]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;
}
你已經有相當多的代碼了。 它似乎為您提供了一些非常具體的東西。 您可以將其設為方法並讓它返回該點的值。
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;
}```
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.