2022.02.04 / Microsoft Visual Studio 2022 / C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _02._03_循环结构___一_____while_和_do_while__
{
internal class Program
{
static void Main(string[] args)
{
//(一)、while 循环:
// 1、语法:
// 代码巴拉巴拉;
// while (循环条件)
// {
// 循环体代码;
// }
// 代码哔哩哔哩;
// 2、运行过程:
// (1)、执行完 代码巴拉巴拉 后,进入本次while循环。
// (2)、先执行 循环条件,得出结果的布尔值(True or False)。
// (3)、若结果的布尔值为 True ,则接着执行一遍 循环体代码 。
// (4)、当 循环体代码 执行完一遍后,程序将再次执行 循环条件。
// (5)、若 第二次循环条件 结果的布尔值依然为 True ,则再执行一遍 循环体代码 。
// (6)、程序不断重复执行 循环条件->循环体代码->循环条件。
// (7)、直至某次 循环条件 结果的布尔值为 False,则结束本次while循环。
// (8)、继续执行后续的 代码哔哩哔哩。
// 例1:计算 1+2+3+...+8+9+10=?
int i = 1;
int sum = 0;
while (i <= 10)
{
sum += i; // 相当于 sum = sum + i
i++; // 此句【至关重要】
}
Console.WriteLine("例1(while循环):1+2+3+...+8+9+10={0}",sum);
// 理解:
// 1、初始设定了变量i的值为1,设定了变量sum的值为0。
// 2、进入while循环,先执行 i(初值1) <= 10,得出结果为 True。
// 3、执行 循环体代码。sum(初值0) + i(初值1) 后被赋值给 sum(新值1),
// 然后 i(初值1) + 1 后被赋值给 i(新值2)。
// 4、重新执行 i(新值2) <= 10,得出结果依然为 True。
// 5、再次执行 循环体代码。sum(新值1) + i(新值2) 后被赋值给 sum(新值3),
// 然后 i(新值2) + 1 后被赋值给 i(新值3)。
// 6、循环重复第2、3、4、5步骤,直到 i=11 时。
// 7、执行 循环条件。此时 i(新值11) <= 10,结果为 False。
// 8、本次while循环结束。sum值=1+...+10,即为需求结果。
// 9、循环体中的 i++ 使得每完成一次循环后,循环条件中的变量即发生变化,
// 循环条件就有可能出现false,循环才有可能结束。
// 若没有 i++,则本次循环为 死循环,永远无法结束。也就无法执行后续代码。
//(二)do while 循环:
// 1、语法:
// 代码巴拉巴拉;
// do
// {
// 循环体代码;
// } while (循环条件);
// 代码哔哩哔哩;
// 2、运行过程:
// (1)、执行完 代码巴拉巴拉 后,进入本次do while循环。
// (2)、先执行一遍 循环体代码,然后再执行 循环条件,
// 得出结果的布尔值(True or False)。
// (3)、若结果的布尔值为 True ,则接着执行一遍 循环体代码 。
// (4)、当 循环体代码 执行完一遍后,程序将再次执行 循环条件。
// (5)、若 第二次循环条件 结果的布尔值依然为 True ,则再执行一遍 循环体代码 。
// (6)、程序不断重复执行 循环体代码->循环条件->循环体代码。
// (7)、直至某次 循环条件 结果的布尔值为 False,则结束本次do while循环。
// (8)、继续执行后续的 代码哔哩哔哩。
// 例2:给出提示,等待用户输入,若输入no则继续给出提示,输入其他则结束。
string input;
do
{
Console.Write("例2 (do while) :发际线后退了吗?( yes / no ):");
input = (Console.ReadLine());
} while (input == "no");
// 理解:
// 1、while 和 do while 的不同点:
// while 是先执行一遍循环条件,
// 以结果判断是否需要执行循环体。
// do while 是先执行一遍循环体,
// 再执行一遍循环条件,
// 以结果判断是否还需要再执行循环体。
// 2、while 和 do while 的相同点:
// 都是用于无法预知具体的循环次数的场合。
}
}
}
// 再牛X的程序,也都离不开重复、重复、再重复……