猿问

出什么问题了

import  java.util.Arrays;

public class OL {

  public static void main(String[] args){

 int j=1;

   int [] nums={89,-23,64,91,1819,818,55,152,713};

   Arrays.sort(nums);

   for (int i=nums.length-1; i>=0; i--){

   if ((nums[i]>=0)&&(nums[i]<=100)){

   j++;

   if(j>3){

   break;

   }


   }

      System.out.println(nums[i]);

   }

  }

}

    


乱也
浏览 1585回答 2
2回答

美得像一个遗憾

break跳出的是离它最近的一个循环,这个程序中,离break最近的循环是if循环,而不是for循环,所以if循环跳出后,for循环依然在工作。解决方法是:把System.out.println(nums[i]);移到上一个 } 里面,这样继续执行的for循环执行的是空语句。当然解决的方法还有很多,楼主这里出现的问题是不了解break的终止循环的范围。import  java.util.Arrays; public class OL{ public static void main(String[] args){ int j=1; int [] nums={89,-23,64,91,1819,818,55,152,713}; Arrays.sort(nums); for (int i=nums.length-1; i>=0; i--){ if ((nums[i]>=0)&&(nums[i]<=100)){ j++; if(j>3){ break; } //这是你希望得到的结果 System.out.println("nums[i]:"+nums[i]); } //实际输出的结果 System.out.println(nums[i]); } } }

冲啊

你把if(j>3){break;}单独放在ystem.out.println(nums[i]);前面,不要放在if条件 里,即:if ((nums[i]>=0)&&(nums[i]<=100)){   j++;    } if(j>3){   break;   }这样的话,检没到j>3即退出FOR循环
随时随地看视频慕课网APP

相关分类

Java
我要回答