while循环 :
初始变量 条件语句 迭代变量 循环体
语法:while (条件语句) { 循环体 };
执行过程:从上至下执行,声明初始变量,执行while循环先判断()条件是否满足,满足则执行循环体{},循环体内是代码块及迭代变量"最下方"。
int i = 0; //初始变量
while (i<10) { //(条件,条件成立执行循环体)
Console.WriteLine(i);//代码块
i++; //迭代变量“要放在所有的代码块的下面”
};
死循环 :
死循环1: 没有初始值和迭代变量,条件为true。
死循环2:迭代变量/条件判断失误,导致条件永远成立。
//死循环1:没有初始值和迭代变量。条件为true。
while (true) { Console.WriteLine("死循环"); }
//死循环2:迭代变量/条件判断失误,导致条件永远成立
int j = 0;
while (j<10) {
Console.WriteLine("死循环");
i--;
}
do…while循环:
至少执行一次循环体代码块的。
执行过程:先声明初始变量,再执行do后面的代码块“在代码的底部添加迭代变量”,最后判断while后面()的条件是否成立,成立则再次执行循环体,不成立则结束循环。
do…while和其他循环的区别:do…while先执行后判断,其他先判断后执行。
int j = 0; //初始变量
do { //循环体
Console.WriteLine(j);
j++;//迭代变量
} while (j < 5); //判断语句
bool bol = true;
int num = 1;
while (bol) {
num *= 3;
Console.WriteLine(num);
if(num > 50)
{
bol = false;
}
}
while和do......while的区别
1.while是先判断后执行。do......while是先执行后判断。
//while:
j = 0;
while (j <= 0)
{
Console.WriteLine("i<0");
};
//do ...while....
do
{
Console.WriteLine("i<0");
}while (i > 0);
使用场景:
for:最常用的循环方式,用于循环的次数比较明确或固定。
while:循环的次数不固定,但是有明确的执行目标。
do…while: 和while相似的,至少执行一次循环体内的代码。
练习
1. 控制台打印1-100之间的整数
int k = 1;
while (k <= 100) {
Console.Write(k +" ");
k++;
}
Console.WriteLine("\n");
2. 打印10-1
int k1 = 10;
while (k1 > 0) {
Console.Write(k1 + " ");
k1--;
}
Console.WriteLine("\n");
3. 打印1-100之间的偶数
int k2 = 1;
while (k2 <= 100)
{
if(k2 % 2 == 0)
{
Console.Write(k2 + " ");
}
k2++;
}
Console.WriteLine("\n");
4. 求1 - 100所有数字的和
int k3 = 1;
int sum = 0;
while (k3 <= 100)
{
sum += k3;
k3++;
}
Console.WriteLine(sum);
Console.WriteLine("\n");
5.让用户输入一个100以内的数 打印1 - 100之间所有的数,用户输入的数除外
int k4 = 1;
int num2 = Convert.ToInt32(Console.ReadLine());
while (k4 <= 100)
{
if (k4 != num2)
{
Console.Write(k4 + " ");
}
k4++;
}
Console.WriteLine("\n");
6. 循环输入某同学结业考试的5门课成绩,并计算平均分
int pjf = 0;
int k5 = 1;
while (k5 <=5) {
int num3 = Convert.ToInt32(Console.ReadLine());
pjf += num3;
k5++;
}
Console.WriteLine($"五科的平均成绩是{pjf / 5}");
while嵌套--99乘法表
//方法1
int num1 = 1;//外层变量
int num2 = 1;//内层变量
while (num1 < 10)
{
while (num2 <= num1)
{
Console.WriteLine(num1 + "*" + num2);
num2++;
}
Console.WriteLine("\n");
num1++;
}
//方法 2
int num1 = 1;//外层变量
while (num1 < 10)
{
int num2 = 1;//内层变量
while (num2 <= num1)
{
Console.WriteLine("{0}*{1}={2} \t",num2,num1,num1*num2);
num2++;
}
Console.WriteLine("\n");
num1++;
}