请等待老师开始课堂...
老师将控制您看到的页面内容
当我们需要记录一周7天的气温时,传统方式是这样的:
public class IntroduceArray {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int numDays = input.nextInt();
int temp1 = 0;
int temp2 = 0;
int temp3 = 0;
int temp4 = 0;
int temp5 = 0;
int temp6 = 0;
int temp7 = 0;
int sum = 0;
if (numDays >= 1) {
System.out.print("Day 1's high temp: ");
temp1 = input.nextInt();
sum += temp1;
}
if (numDays >= 2) {
System.out.print("Day 2's high temp: ");
temp2 = input.nextInt();
sum += temp2;
}
if (numDays >= 3) {
System.out.print("Day 3's high temp: ");
temp3 = input.nextInt();
sum += temp3;
}
if (numDays >= 4) {
System.out.print("Day 4's high temp: ");
temp4 = input.nextInt();
sum += temp4;
}
if (numDays >= 5) {
System.out.print("Day 5's high temp: ");
temp5 = input.nextInt();
sum += temp5;
}
if (numDays >= 6) {
System.out.print("Day 6's high temp: ");
temp6 = input.nextInt();
sum += temp6;
}
if (numDays >= 7) {
System.out.print("Day 7's high temp: ");
temp7 = input.nextInt();
sum += temp7;
}
// 计算平均温度
double average = (double) sum / numDays;
System.out.println("Average temp = " + average);
// 统计高于平均温度的天数
int daysAboveAverage = 0;
if (numDays >= 1 && temp1 > average) daysAboveAverage++;
if (numDays >= 2 && temp2 > average) daysAboveAverage++;
if (numDays >= 3 && temp3 > average) daysAboveAverage++;
if (numDays >= 4 && temp4 > average) daysAboveAverage++;
if (numDays >= 5 && temp5 > average) daysAboveAverage++;
if (numDays >= 6 && temp6 > average) daysAboveAverage++;
if (numDays >= 7 && temp7 > average) daysAboveAverage++;
System.out.println(daysAboveAverage + " days were above average.");
input.close();
}
}
🤔 思考:如果我要记录365天的气温呢?
传统方式需要定义100个变量!代码变得无法维护:
public class Temperature100Days {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int numDays = input.nextInt();
int temp1 = 0, temp2 = 0, temp3 = 0, temp4 = 0, temp5 = 0;
int temp6 = 0, temp7 = 0, temp8 = 0, temp9 = 0, temp10 = 0;
int temp11 = 0, temp12 = 0, temp13 = 0, temp14 = 0, temp15 = 0;
int temp16 = 0, temp17 = 0, temp18 = 0, temp19 = 0, temp20 = 0;
int temp21 = 0, temp22 = 0, temp23 = 0, temp24 = 0, temp25 = 0;
int temp26 = 0, temp27 = 0, temp28 = 0, temp29 = 0, temp30 = 0;
int temp31 = 0, temp32 = 0, temp33 = 0, temp34 = 0, temp35 = 0;
int temp36 = 0, temp37 = 0, temp38 = 0, temp39 = 0, temp40 = 0;
int temp41 = 0, temp42 = 0, temp43 = 0, temp44 = 0, temp45 = 0;
int temp46 = 0, temp47 = 0, temp48 = 0, temp49 = 0, temp50 = 0;
int temp51 = 0, temp52 = 0, temp53 = 0, temp54 = 0, temp55 = 0;
int temp56 = 0, temp57 = 0, temp58 = 0, temp59 = 0, temp60 = 0;
int temp61 = 0, temp62 = 0, temp63 = 0, temp64 = 0, temp65 = 0;
int temp66 = 0, temp67 = 0, temp68 = 0, temp69 = 0, temp70 = 0;
int temp71 = 0, temp72 = 0, temp73 = 0, temp74 = 0, temp75 = 0;
int temp76 = 0, temp77 = 0, temp78 = 0, temp79 = 0, temp80 = 0;
int temp81 = 0, temp82 = 0, temp83 = 0, temp84 = 0, temp85 = 0;
int temp86 = 0, temp87 = 0, temp88 = 0, temp89 = 0, temp90 = 0;
int temp91 = 0, temp92 = 0, temp93 = 0, temp94 = 0, temp95 = 0;
int temp96 = 0, temp97 = 0, temp98 = 0, temp99 = 0, temp100 = 0;
int sum = 0;
if (numDays >= 1) {
System.out.print("Day 1's high temp: ");
temp1 = input.nextInt();
sum += temp1;
}
if (numDays >= 2) {
System.out.print("Day 2's high temp: ");
temp2 = input.nextInt();
sum += temp2;
}
if (numDays >= 3) {
System.out.print("Day 3's high temp: ");
temp3 = input.nextInt();
sum += temp3;
}
if (numDays >= 4) {
System.out.print("Day 4's high temp: ");
temp4 = input.nextInt();
sum += temp4;
}
if (numDays >= 5) {
System.out.print("Day 5's high temp: ");
temp5 = input.nextInt();
sum += temp5;
}
if (numDays >= 6) {
System.out.print("Day 6's high temp: ");
temp6 = input.nextInt();
sum += temp6;
}
if (numDays >= 7) {
System.out.print("Day 7's high temp: ");
temp7 = input.nextInt();
sum += temp7;
}
if (numDays >= 8) {
System.out.print("Day 8's high temp: ");
temp8 = input.nextInt();
sum += temp8;
}
if (numDays >= 9) {
System.out.print("Day 9's high temp: ");
temp9 = input.nextInt();
sum += temp9;
}
if (numDays >= 10) {
System.out.print("Day 10's high temp: ");
temp10 = input.nextInt();
sum += temp10;
}
if (numDays >= 11) {
System.out.print("Day 11's high temp: ");
temp11 = input.nextInt();
sum += temp11;
}
if (numDays >= 12) {
System.out.print("Day 12's high temp: ");
temp12 = input.nextInt();
sum += temp12;
}
if (numDays >= 13) {
System.out.print("Day 13's high temp: ");
temp13 = input.nextInt();
sum += temp13;
}
if (numDays >= 14) {
System.out.print("Day 14's high temp: ");
temp14 = input.nextInt();
sum += temp14;
}
if (numDays >= 15) {
System.out.print("Day 15's high temp: ");
temp15 = input.nextInt();
sum += temp15;
}
if (numDays >= 16) {
System.out.print("Day 16's high temp: ");
temp16 = input.nextInt();
sum += temp16;
}
if (numDays >= 17) {
System.out.print("Day 17's high temp: ");
temp17 = input.nextInt();
sum += temp17;
}
if (numDays >= 18) {
System.out.print("Day 18's high temp: ");
temp18 = input.nextInt();
sum += temp18;
}
if (numDays >= 19) {
System.out.print("Day 19's high temp: ");
temp19 = input.nextInt();
sum += temp19;
}
if (numDays >= 20) {
System.out.print("Day 20's high temp: ");
temp20 = input.nextInt();
sum += temp20;
}
if (numDays >= 21) {
System.out.print("Day 21's high temp: ");
temp21 = input.nextInt();
sum += temp21;
}
if (numDays >= 22) {
System.out.print("Day 22's high temp: ");
temp22 = input.nextInt();
sum += temp22;
}
if (numDays >= 23) {
System.out.print("Day 23's high temp: ");
temp23 = input.nextInt();
sum += temp23;
}
if (numDays >= 24) {
System.out.print("Day 24's high temp: ");
temp24 = input.nextInt();
sum += temp24;
}
if (numDays >= 25) {
System.out.print("Day 25's high temp: ");
temp25 = input.nextInt();
sum += temp25;
}
if (numDays >= 26) {
System.out.print("Day 26's high temp: ");
temp26 = input.nextInt();
sum += temp26;
}
if (numDays >= 27) {
System.out.print("Day 27's high temp: ");
temp27 = input.nextInt();
sum += temp27;
}
if (numDays >= 28) {
System.out.print("Day 28's high temp: ");
temp28 = input.nextInt();
sum += temp28;
}
if (numDays >= 29) {
System.out.print("Day 29's high temp: ");
temp29 = input.nextInt();
sum += temp29;
}
if (numDays >= 30) {
System.out.print("Day 30's high temp: ");
temp30 = input.nextInt();
sum += temp30;
}
if (numDays >= 31) {
System.out.print("Day 31's high temp: ");
temp31 = input.nextInt();
sum += temp31;
}
if (numDays >= 32) {
System.out.print("Day 32's high temp: ");
temp32 = input.nextInt();
sum += temp32;
}
if (numDays >= 33) {
System.out.print("Day 33's high temp: ");
temp33 = input.nextInt();
sum += temp33;
}
if (numDays >= 34) {
System.out.print("Day 34's high temp: ");
temp34 = input.nextInt();
sum += temp34;
}
if (numDays >= 35) {
System.out.print("Day 35's high temp: ");
temp35 = input.nextInt();
sum += temp35;
}
if (numDays >= 36) {
System.out.print("Day 36's high temp: ");
temp36 = input.nextInt();
sum += temp36;
}
if (numDays >= 37) {
System.out.print("Day 37's high temp: ");
temp37 = input.nextInt();
sum += temp37;
}
if (numDays >= 38) {
System.out.print("Day 38's high temp: ");
temp38 = input.nextInt();
sum += temp38;
}
if (numDays >= 39) {
System.out.print("Day 39's high temp: ");
temp39 = input.nextInt();
sum += temp39;
}
if (numDays >= 40) {
System.out.print("Day 40's high temp: ");
temp40 = input.nextInt();
sum += temp40;
}
if (numDays >= 41) {
System.out.print("Day 41's high temp: ");
temp41 = input.nextInt();
sum += temp41;
}
if (numDays >= 42) {
System.out.print("Day 42's high temp: ");
temp42 = input.nextInt();
sum += temp42;
}
if (numDays >= 43) {
System.out.print("Day 43's high temp: ");
temp43 = input.nextInt();
sum += temp43;
}
if (numDays >= 44) {
System.out.print("Day 44's high temp: ");
temp44 = input.nextInt();
sum += temp44;
}
if (numDays >= 45) {
System.out.print("Day 45's high temp: ");
temp45 = input.nextInt();
sum += temp45;
}
if (numDays >= 46) {
System.out.print("Day 46's high temp: ");
temp46 = input.nextInt();
sum += temp46;
}
if (numDays >= 47) {
System.out.print("Day 47's high temp: ");
temp47 = input.nextInt();
sum += temp47;
}
if (numDays >= 48) {
System.out.print("Day 48's high temp: ");
temp48 = input.nextInt();
sum += temp48;
}
if (numDays >= 49) {
System.out.print("Day 49's high temp: ");
temp49 = input.nextInt();
sum += temp49;
}
if (numDays >= 50) {
System.out.print("Day 50's high temp: ");
temp50 = input.nextInt();
sum += temp50;
}
if (numDays >= 51) {
System.out.print("Day 51's high temp: ");
temp51 = input.nextInt();
sum += temp51;
}
if (numDays >= 52) {
System.out.print("Day 52's high temp: ");
temp52 = input.nextInt();
sum += temp52;
}
if (numDays >= 53) {
System.out.print("Day 53's high temp: ");
temp53 = input.nextInt();
sum += temp53;
}
if (numDays >= 54) {
System.out.print("Day 54's high temp: ");
temp54 = input.nextInt();
sum += temp54;
}
if (numDays >= 55) {
System.out.print("Day 55's high temp: ");
temp55 = input.nextInt();
sum += temp55;
}
if (numDays >= 56) {
System.out.print("Day 56's high temp: ");
temp56 = input.nextInt();
sum += temp56;
}
if (numDays >= 57) {
System.out.print("Day 57's high temp: ");
temp57 = input.nextInt();
sum += temp57;
}
if (numDays >= 58) {
System.out.print("Day 58's high temp: ");
temp58 = input.nextInt();
sum += temp58;
}
if (numDays >= 59) {
System.out.print("Day 59's high temp: ");
temp59 = input.nextInt();
sum += temp59;
}
if (numDays >= 60) {
System.out.print("Day 60's high temp: ");
temp60 = input.nextInt();
sum += temp60;
}
if (numDays >= 61) {
System.out.print("Day 61's high temp: ");
temp61 = input.nextInt();
sum += temp61;
}
if (numDays >= 62) {
System.out.print("Day 62's high temp: ");
temp62 = input.nextInt();
sum += temp62;
}
if (numDays >= 63) {
System.out.print("Day 63's high temp: ");
temp63 = input.nextInt();
sum += temp63;
}
if (numDays >= 64) {
System.out.print("Day 64's high temp: ");
temp64 = input.nextInt();
sum += temp64;
}
if (numDays >= 65) {
System.out.print("Day 65's high temp: ");
temp65 = input.nextInt();
sum += temp65;
}
if (numDays >= 66) {
System.out.print("Day 66's high temp: ");
temp66 = input.nextInt();
sum += temp66;
}
if (numDays >= 67) {
System.out.print("Day 67's high temp: ");
temp67 = input.nextInt();
sum += temp67;
}
if (numDays >= 68) {
System.out.print("Day 68's high temp: ");
temp68 = input.nextInt();
sum += temp68;
}
if (numDays >= 69) {
System.out.print("Day 69's high temp: ");
temp69 = input.nextInt();
sum += temp69;
}
if (numDays >= 70) {
System.out.print("Day 70's high temp: ");
temp70 = input.nextInt();
sum += temp70;
}
if (numDays >= 71) {
System.out.print("Day 71's high temp: ");
temp71 = input.nextInt();
sum += temp71;
}
if (numDays >= 72) {
System.out.print("Day 72's high temp: ");
temp72 = input.nextInt();
sum += temp72;
}
if (numDays >= 73) {
System.out.print("Day 73's high temp: ");
temp73 = input.nextInt();
sum += temp73;
}
if (numDays >= 74) {
System.out.print("Day 74's high temp: ");
temp74 = input.nextInt();
sum += temp74;
}
if (numDays >= 75) {
System.out.print("Day 75's high temp: ");
temp75 = input.nextInt();
sum += temp75;
}
if (numDays >= 76) {
System.out.print("Day 76's high temp: ");
temp76 = input.nextInt();
sum += temp76;
}
if (numDays >= 77) {
System.out.print("Day 77's high temp: ");
temp77 = input.nextInt();
sum += temp77;
}
if (numDays >= 78) {
System.out.print("Day 78's high temp: ");
temp78 = input.nextInt();
sum += temp78;
}
if (numDays >= 79) {
System.out.print("Day 79's high temp: ");
temp79 = input.nextInt();
sum += temp79;
}
if (numDays >= 80) {
System.out.print("Day 80's high temp: ");
temp80 = input.nextInt();
sum += temp80;
}
if (numDays >= 81) {
System.out.print("Day 81's high temp: ");
temp81 = input.nextInt();
sum += temp81;
}
if (numDays >= 82) {
System.out.print("Day 82's high temp: ");
temp82 = input.nextInt();
sum += temp82;
}
if (numDays >= 83) {
System.out.print("Day 83's high temp: ");
temp83 = input.nextInt();
sum += temp83;
}
if (numDays >= 84) {
System.out.print("Day 84's high temp: ");
temp84 = input.nextInt();
sum += temp84;
}
if (numDays >= 85) {
System.out.print("Day 85's high temp: ");
temp85 = input.nextInt();
sum += temp85;
}
if (numDays >= 86) {
System.out.print("Day 86's high temp: ");
temp86 = input.nextInt();
sum += temp86;
}
if (numDays >= 87) {
System.out.print("Day 87's high temp: ");
temp87 = input.nextInt();
sum += temp87;
}
if (numDays >= 88) {
System.out.print("Day 88's high temp: ");
temp88 = input.nextInt();
sum += temp88;
}
if (numDays >= 89) {
System.out.print("Day 89's high temp: ");
temp89 = input.nextInt();
sum += temp89;
}
if (numDays >= 90) {
System.out.print("Day 90's high temp: ");
temp90 = input.nextInt();
sum += temp90;
}
if (numDays >= 91) {
System.out.print("Day 91's high temp: ");
temp91 = input.nextInt();
sum += temp91;
}
if (numDays >= 92) {
System.out.print("Day 92's high temp: ");
temp92 = input.nextInt();
sum += temp92;
}
if (numDays >= 93) {
System.out.print("Day 93's high temp: ");
temp93 = input.nextInt();
sum += temp93;
}
if (numDays >= 94) {
System.out.print("Day 94's high temp: ");
temp94 = input.nextInt();
sum += temp94;
}
if (numDays >= 95) {
System.out.print("Day 95's high temp: ");
temp95 = input.nextInt();
sum += temp95;
}
if (numDays >= 96) {
System.out.print("Day 96's high temp: ");
temp96 = input.nextInt();
sum += temp96;
}
if (numDays >= 97) {
System.out.print("Day 97's high temp: ");
temp97 = input.nextInt();
sum += temp97;
}
if (numDays >= 98) {
System.out.print("Day 98's high temp: ");
temp98 = input.nextInt();
sum += temp98;
}
if (numDays >= 99) {
System.out.print("Day 99's high temp: ");
temp99 = input.nextInt();
sum += temp99;
}
if (numDays >= 100) {
System.out.print("Day 100's high temp: ");
temp100 = input.nextInt();
sum += temp100;
}
double average = (double) sum / numDays;
System.out.println("Average temp = " + average);
int daysAboveAverage = 0;
if (numDays >= 1 && temp1 > average) daysAboveAverage++;
if (numDays >= 2 && temp2 > average) daysAboveAverage++;
if (numDays >= 3 && temp3 > average) daysAboveAverage++;
if (numDays >= 4 && temp4 > average) daysAboveAverage++;
if (numDays >= 5 && temp5 > average) daysAboveAverage++;
if (numDays >= 6 && temp6 > average) daysAboveAverage++;
if (numDays >= 7 && temp7 > average) daysAboveAverage++;
if (numDays >= 8 && temp8 > average) daysAboveAverage++;
if (numDays >= 9 && temp9 > average) daysAboveAverage++;
if (numDays >= 10 && temp10 > average) daysAboveAverage++;
if (numDays >= 11 && temp11 > average) daysAboveAverage++;
if (numDays >= 12 && temp12 > average) daysAboveAverage++;
if (numDays >= 13 && temp13 > average) daysAboveAverage++;
if (numDays >= 14 && temp14 > average) daysAboveAverage++;
if (numDays >= 15 && temp15 > average) daysAboveAverage++;
if (numDays >= 16 && temp16 > average) daysAboveAverage++;
if (numDays >= 17 && temp17 > average) daysAboveAverage++;
if (numDays >= 18 && temp18 > average) daysAboveAverage++;
if (numDays >= 19 && temp19 > average) daysAboveAverage++;
if (numDays >= 20 && temp20 > average) daysAboveAverage++;
if (numDays >= 21 && temp21 > average) daysAboveAverage++;
if (numDays >= 22 && temp22 > average) daysAboveAverage++;
if (numDays >= 23 && temp23 > average) daysAboveAverage++;
if (numDays >= 24 && temp24 > average) daysAboveAverage++;
if (numDays >= 25 && temp25 > average) daysAboveAverage++;
if (numDays >= 26 && temp26 > average) daysAboveAverage++;
if (numDays >= 27 && temp27 > average) daysAboveAverage++;
if (numDays >= 28 && temp28 > average) daysAboveAverage++;
if (numDays >= 29 && temp29 > average) daysAboveAverage++;
if (numDays >= 30 && temp30 > average) daysAboveAverage++;
if (numDays >= 31 && temp31 > average) daysAboveAverage++;
if (numDays >= 32 && temp32 > average) daysAboveAverage++;
if (numDays >= 33 && temp33 > average) daysAboveAverage++;
if (numDays >= 34 && temp34 > average) daysAboveAverage++;
if (numDays >= 35 && temp35 > average) daysAboveAverage++;
if (numDays >= 36 && temp36 > average) daysAboveAverage++;
if (numDays >= 37 && temp37 > average) daysAboveAverage++;
if (numDays >= 38 && temp38 > average) daysAboveAverage++;
if (numDays >= 39 && temp39 > average) daysAboveAverage++;
if (numDays >= 40 && temp40 > average) daysAboveAverage++;
if (numDays >= 41 && temp41 > average) daysAboveAverage++;
if (numDays >= 42 && temp42 > average) daysAboveAverage++;
if (numDays >= 43 && temp43 > average) daysAboveAverage++;
if (numDays >= 44 && temp44 > average) daysAboveAverage++;
if (numDays >= 45 && temp45 > average) daysAboveAverage++;
if (numDays >= 46 && temp46 > average) daysAboveAverage++;
if (numDays >= 47 && temp47 > average) daysAboveAverage++;
if (numDays >= 48 && temp48 > average) daysAboveAverage++;
if (numDays >= 49 && temp49 > average) daysAboveAverage++;
if (numDays >= 50 && temp50 > average) daysAboveAverage++;
if (numDays >= 51 && temp51 > average) daysAboveAverage++;
if (numDays >= 52 && temp52 > average) daysAboveAverage++;
if (numDays >= 53 && temp53 > average) daysAboveAverage++;
if (numDays >= 54 && temp54 > average) daysAboveAverage++;
if (numDays >= 55 && temp55 > average) daysAboveAverage++;
if (numDays >= 56 && temp56 > average) daysAboveAverage++;
if (numDays >= 57 && temp57 > average) daysAboveAverage++;
if (numDays >= 58 && temp58 > average) daysAboveAverage++;
if (numDays >= 59 && temp59 > average) daysAboveAverage++;
if (numDays >= 60 && temp60 > average) daysAboveAverage++;
if (numDays >= 61 && temp61 > average) daysAboveAverage++;
if (numDays >= 62 && temp62 > average) daysAboveAverage++;
if (numDays >= 63 && temp63 > average) daysAboveAverage++;
if (numDays >= 64 && temp64 > average) daysAboveAverage++;
if (numDays >= 65 && temp65 > average) daysAboveAverage++;
if (numDays >= 66 && temp66 > average) daysAboveAverage++;
if (numDays >= 67 && temp67 > average) daysAboveAverage++;
if (numDays >= 68 && temp68 > average) daysAboveAverage++;
if (numDays >= 69 && temp69 > average) daysAboveAverage++;
if (numDays >= 70 && temp70 > average) daysAboveAverage++;
if (numDays >= 71 && temp71 > average) daysAboveAverage++;
if (numDays >= 72 && temp72 > average) daysAboveAverage++;
if (numDays >= 73 && temp73 > average) daysAboveAverage++;
if (numDays >= 74 && temp74 > average) daysAboveAverage++;
if (numDays >= 75 && temp75 > average) daysAboveAverage++;
if (numDays >= 76 && temp76 > average) daysAboveAverage++;
if (numDays >= 77 && temp77 > average) daysAboveAverage++;
if (numDays >= 78 && temp78 > average) daysAboveAverage++;
if (numDays >= 79 && temp79 > average) daysAboveAverage++;
if (numDays >= 80 && temp80 > average) daysAboveAverage++;
if (numDays >= 81 && temp81 > average) daysAboveAverage++;
if (numDays >= 82 && temp82 > average) daysAboveAverage++;
if (numDays >= 83 && temp83 > average) daysAboveAverage++;
if (numDays >= 84 && temp84 > average) daysAboveAverage++;
if (numDays >= 85 && temp85 > average) daysAboveAverage++;
if (numDays >= 86 && temp86 > average) daysAboveAverage++;
if (numDays >= 87 && temp87 > average) daysAboveAverage++;
if (numDays >= 88 && temp88 > average) daysAboveAverage++;
if (numDays >= 89 && temp89 > average) daysAboveAverage++;
if (numDays >= 90 && temp90 > average) daysAboveAverage++;
if (numDays >= 91 && temp91 > average) daysAboveAverage++;
if (numDays >= 92 && temp92 > average) daysAboveAverage++;
if (numDays >= 93 && temp93 > average) daysAboveAverage++;
if (numDays >= 94 && temp94 > average) daysAboveAverage++;
if (numDays >= 95 && temp95 > average) daysAboveAverage++;
if (numDays >= 96 && temp96 > average) daysAboveAverage++;
if (numDays >= 97 && temp97 > average) daysAboveAverage++;
if (numDays >= 98 && temp98 > average) daysAboveAverage++;
if (numDays >= 99 && temp99 > average) daysAboveAverage++;
if (numDays >= 100 && temp100 > average) daysAboveAverage++;
System.out.println(daysAboveAverage + " days were above average.");
input.close();
}
}
💡 这就是为什么我们需要数组(Array)!
尝试创建一个数组并访问其中的元素:
编写代码后点击"运行代码"查看可视化效果
判断以下代码能否正常运行:
提示:数组 int[] data = new int[10] 的有效索引是 0 到 9