CH07_循环进阶
本章目标
计算平均分
若有3个班级各4名学员参赛,如何计算每个班级参赛学员的平均分?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class Program { static void Main(string[] args) { for (int i = 1; i <= 3; i++) { double total = 0; double avg = 0;
Console.WriteLine("现在开始统计第{0}个班的数据!",i);
for (int j = 1; j <=4; j++) { Console.WriteLine("请输入第{0}个学生的成绩:",j); total += int.Parse(Console.ReadLine()); }
avg = total / 4; Console.WriteLine("第{0}个班的平均分为:{1}",i,avg); }
Console.ReadLine(); } }
|
打印图案
1.直角三角形
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Program { static void Main(string[] args) { Console.WriteLine("请输入行数:"); int row = int.Parse(Console.ReadLine());
for (int i = 1; i <=row ; i++) { for (int j = 1; j <=2*i-1 ; j++) { Console.Write("*"); } Console.WriteLine(); }
Console.ReadLine(); } }
|
2.倒直角三角形
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Program { static void Main(string[] args) { Console.WriteLine("请输入行数:"); int row = int.Parse(Console.ReadLine());
for (int i = 5; i >=1 ; i--) { for (int j = 1; j <=2*i-1 ; j++) { Console.Write("*"); } Console.WriteLine(); }
Console.ReadLine(); } }
|
3.等腰三角形
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| class Program { static void Main(string[] args) { int row = 0; do { Console.WriteLine("请输入行数:"); row = int.Parse(Console.ReadLine());
} while (row%2==0 || row<5);
for (int i = 1; i <=row ; i++) { for (int k = 1; k <=row-i ; k++) { Console.Write(" "); }
for (int j = 1; j <=2*i-1 ; j++) { Console.Write("*"); } Console.WriteLine(); }
Console.ReadLine(); } }
|
打印九九乘法表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class Program { static void Main(string[] args) { for (int i = 1; i <=9 ; i++) { for (int j = 1; j <=i ; j++) { Console.Write("{0}*{1}={2}\t",j,i,j*i); } Console.WriteLine(); }
Console.ReadLine(); } }
|
在二重循环中使用continue
升级计算平均分的案例,增加统计成绩高于(包含)80分的学生数量。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| class Program { static void Main(string[] args) { int count = 0;
for (int i = 1; i <= 3; i++) { double total = 0; double avg = 0;
Console.WriteLine("现在开始统计第{0}个班的数据!", i);
for (int j = 1; j <= 4; j++) { Console.WriteLine("请输入第{0}个学生的成绩:", j); int score= int.Parse(Console.ReadLine());
total += score;
if (score < 80) continue;
count++; }
avg = total / 4; Console.WriteLine("第{0}个班的平均分为:{1}", i, avg);
}
Console.ReadLine(); } }
|
在二重循环中使用break
升级计算平均分的案例,增加判断非法数据的功能,如果有负数或高于100的数,则不计算此班级。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| class Program { static void Main(string[] args) {
for (int i = 1; i <= 3; i++) { double total = 0; double avg = 0; bool isRight = true;
Console.WriteLine("现在开始统计第{0}个班的数据!", i);
int score = 0; for (int j = 1; j <= 4; j++) { Console.WriteLine("请输入第{0}个学生的成绩:", j); score = int.Parse(Console.ReadLine());
if (score < 0 || score > 100) { isRight = false; break; }
total += score;
}
if (isRight) { avg = total / 4; Console.WriteLine("第{0}个班的平均分为:{1}", i, avg); } }
Console.ReadLine(); } }
|
课后作业
1.使用二重循环打印以下图案
图形1:
图形2:
图形3:
图形4:
图形5:
图形6: