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;//80分以上的人数

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: