為什么最后輸出沒有成績
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.show(scores);?
? ? }
? ??
? ? //定義方法完成成績排序并輸出前三名的功能
? ? public void show(int []scores)
? ? {Arrays.sort(scores);
? ? ? ?int sum=0;
? ?
? ?for(int i=scores.length-1;i>=0;i--)
? ? ?{ ?if(scores[i]>=0||scores[i]<=100){
? ? ? ?continue;
? ? }sum++;
? ? if(sum>3){
? ? ? break;}
? ? ?System.out.println(scores[i]);
? ? }
? ? }
? ??
}
2016-05-27
按樓主的意思,將這行代碼改一下就可以了
if(scores[i]<0||scores[i]>100)
2016-05-28
范圍界定的時候 ,為了確保邏輯運算的順序,要加()
2016-05-26
import java.util.Arrays;
public class HelloWorld {
? ? //完成 main 方法
public static void main(String[] args) {
? ? int[] scores = {89 , -23 , 64 , 91 , 119 , 52 , 73}; ?
? ? HelloWorld hello =new HelloWorld(); ? ?
? ? int[] real = hello.getArray(scores); ? ?
? ? ? ? System.out.println("考試成績的前三名為:");
? ? ? ? for (int i = 0; i < real.length; i++) {
? ? System.out.println(real[i]);
}
? ? }
? ? //定義方法完成成績排序并輸出前三名的功能
? ? public int[] getArray(int[] scores){
? ? int[] count = new int[3];
? ? ? ? for(int i =0;i<scores.length;i++){
? ? ? ? //升序排列
? ? ? ? Arrays.sort(scores);
? ? ? ? }
? ? ? ? //倒序遍歷
? ? ? ? for ( int i = scores.length - 1,j=0; i >= 0; i--) {
? ? ? ? if (scores[i]<0||scores[i]>100) {
continue;
}else{
count[j]=scores[i];
j++;
}
? ? ? ? if(j>2){
? ? ? ? break;
? ? ? ? }
? ? ? ? }
return count;
? ? }
}