任务三 循环结构语句
知识点
1.什么是循环结构?
循环语句是重复多次处理语句或执行代码的结构。当条件为true,程序开始进入循环,每执行一次就会判断一次条件,当条件为false时,不再执行循环,继续执行循环语句后面的程序代码。
C#提供了三种循环结构语句:for语句、while语句和 do...while 语句。它们可以完成类似的功能,但控制结构的方式不同。
子任务一 for语句
2.for语句的语法格式是什么?
for (初始化; 判断语句; 循环变量)
语句
- 初始化:用于对变量进行初始化或赋值
- 判断语句:条件或逻辑表达式,为true时执行循环,为false时结束跳出循环
- 循环变量:在循环结束后一般用于改变控制循环的变量
3.for循环的执行过程是什么?
- 进行初始化
- 计算判断语句的值:若为true,执行循环;若为false,不执行循环
- 改变循环变量,再继续执行步骤2的判断语句
注意:for循环内定义的变量,其作用域仅限于该for语句中,跳出for循环该变量失效。
4.for语句有哪些深入应用(省略表达式)?
(1)省略表达式1(应在for语句之前给循环变量赋初值,分号不能省略):
for (; i <= 100; i++) { ... }
(2)省略表达式2(没有判断条件,编译系统默认为真,循环将无条件执行,需要在循环体中设置条件控制):
for (i = 1; ; i++) { if (i > 100) break; sum = sum + i; }
(3)省略表达式3(需要在循环体中改变循环变量):
for (i = 1; i <= 100; )
{
sum = sum + i;
i++; // 循环变量增加1
}
(4)省略表达式1和表达式3(只给循环条件):
int i = 1, sum = 0;
for (; i <= 100; )
sum = sum + i++;
(5)三个表达式都省略 for (;;)(不设初值、没有判断条件、循环变量不增值,无终止执行循环体):
int i = 1, sum = 0;
for (;;)
{
if (i > 100) break;
sum = sum + i++;
}
5.【示例】求n个数累加的和
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _4_3_1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入数字n: ");
int n = int.Parse(Console.ReadLine());
int i = 1, s = 0;
for (; i <= n; i++)
{
s = s + i;
}
Console.WriteLine("1+2+···+{0}的和为:{1}。", n, s);
Console.ReadKey();
}
}
}
以n=5为例,运行结果:
1+2+···+5的和为:15。
子任务二 while语句
6.while语句的语法格式是什么?
while (条件表达式)
语句
7.while语句的执行流程是什么?
属于先判断后执行的循环结构:
- 当条件表达式的结果为true,进入循环,执行while后的语句
- 每执行一次,计算一次条件表达式
- 直到条件表达式结果为false,停止执行,跳出while循环
8.【示例】反向输出用户输入的整数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _4_3_2
{
class Program
{
static void Main(string[] args)
{
int m, n;
Console.Write("输入一个整数: ");
n = int.Parse(Console.ReadLine());
Console.Write("反向显示结果: ");
while (n != 0)
{
m = n % 10; // 依次求个位、十位、… 上的数字m
n = n / 10;
Console.Write(m);
}
Console.WriteLine();
Console.ReadKey();
}
}
}
以输入123456789为例,反向输出显示为987654321。
子任务三 do...while语句
9.do...while语句的语法格式是什么?
do
语句
while (条件表达式);
10.do...while语句的执行流程是什么?
属于先执行后判断的循环结构:
- 先执行一次语句
- 然后计算while后的条件表达式
- 若结果为true,进入循环,继续执行语句
- 若结果为false,结束循环,直接跳出
注意:do...while循环至少执行一次循环体。
11.【示例】用do...while反向输出整数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _4_3_3
{
class Program
{
static void Main(string[] args)
{
int m, n;
Console.Write("请输入一个整数:");
n = int.Parse(Console.ReadLine());
Console.Write("反向显示结果:");
do
{
m = n % 10;
n = n / 10;
Console.Write(m);
} while (n != 0);
Console.WriteLine();
Console.ReadKey();
}
}
}
以输入12345为例,输出显示结果为54321。
12.while和do...while的区别是什么?
| 特性 | while | do...while |
|---|---|---|
| 执行顺序 | 先判断后执行 | 先执行后判断 |
| 最少执行次数 | 0次(条件为false时不执行) | 1次(至少执行一次循环体) |