如果num=1 , if里的num>=3,為什么只輸出一個(gè)91?
import java.util.Arrays;
public class HelloWorld {
? ??
? ? //完成 main 方法
? ? public static void main(String[] args) {
? ? ? ??
? ? ? int []scores={89,-23,64,91,119,52,73};
? ? ? ?System.out.println("考試成績的前三名為:");
? ? ? ?HelloWorld hello=new HelloWorld();
? ? ? ? hello.showTop3(scores);
? ? ? ??
? ? }
? ??
? ? //定義方法完成成績排序并輸出前三名的功能
? ??
? ? public void showTop3(int[] scores){
? ? ? ? Arrays.sort(scores);
? ? ? ? int num=1;
? ? ? ? for(int i=scores.length-1;i>=0;i--){
? ? ? ? ? ? if(scores[i]<0||scores[i]>100){
? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? }
? ? ? ? ? ? num++;
? ? ? ? ? ? if(num>=3){
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? ? ? System.out.println(scores[i]);
? ? ? ? }
? ? }
? ??
2020-08-14
把num初始值改成0,break條件改成num>3就沒問題了
2020-08-08
你的num設(shè)置為1,那么剛運(yùn)行i=7時(shí),你的num就+1變成了2,接下來你輸出了91這個(gè)數(shù);運(yùn)行i=6時(shí),你的num+1變成了3,已經(jīng)滿足了if的條件,然后便執(zhí)行break跳出循環(huán)了。所以num初始值為0,且if條件里面num>3,而不能大于等于。
2020-07-13
break 跳出循環(huán)了,所以只執(zhí)行了一次