-3

このループの配列検索バージョンは何でしょうか? したがって、ネストされた if else を使用しない以下の同じループです。

Test t;
int A;
int B;
int C;
int D;
int F;

for(int i = 0; i < gradeCount;i++){
    if(t.getScore() <= 100 && t.getScore() >= 90)
        A++;
    else if(t.getScore() >= 80 && t.getScore() <= 89)
        B++;
    else if(t.getScore() >= 70 && t.getScore() < 79)
        C++;
    else if(t.getScore() >= 60 && t.getScore() < 69)
        D++;
    else if(t.getScore() <= 59)
        F++;
}
4

2 に答える 2

0
int results[5];
for(int i = 0; i < gradeCount; i++) {
   //if you are between 99 and 90
       //index will get set to 0
       //ex 9 - 95/10 = 0
   //if you are between 89 and 80
       //index will get set to 1
       //ex 9-89/10 = 1
   int index = 9 - t.getScore()/10;
   //if 100 or larger, we have to set it to 0, otherwise index would be negative
   if(index < 0) index = 0;
   //if less than 50, index will be too large and nothing is worse than F
   if(index >= 5) index = 4;
   results[index]++
}

元々は個々の変数 A、B、C、D、F に含まれていたカウントで、現在は配列 "results" に保存されています。

どこ:

results[0] は A

結果[1]はB

...

結果[4]はFです

于 2013-05-21T06:28:54.677 に答える