循环while
循环是C#前期学习的核心内容,是编程中最重要也是最常用的环节。
本章将优先讲解while循环。
while循环的格式和if有点像:
格式:
while(条件)
{
循环体
}
在条件判断为true的情况下,会不断地执行循环体中的内容。直到条件变为false的时候,循环体就不再执行了。直接跳转到大括号后面
例子:
int i = 0;
while(i < 100)
{
Console.WriteLine(i + 1);
i++;
}
这个例子是一个简单的从1打印到100的例子。
int 定义了一个初始值为0 的值i
while(i < 100)也就是0小于100时判断为true
打印出0加1,即1,然后i++,之后再次回到判断条件,准备下次循环,直到i++到100后,判断变为false则结束循环。这就是while循环的基本用法。
技巧:单步调试
单步调试就可以让代码一步一步地执行,这样就可以看清楚每一步代码的执行过程,以此彻底了解循环的执行过程。
在vs中最左侧给主语句添加断句,使程序运行到断句后暂停。后通过逐语句(F10)和逐过程(F11)来检查。
停止死循环
如例子
int i = 0;
bool flag = true;
while (flag) //死循环1~n,要求输入end键结束
{
Console.WriteLine(i + 1);
i++;
string input = Console.ReadLine();
//想要忽略输入end中多余的空格
input = input.Trim();//trim代表删除左边与右边的空格,即只要输出时出现end,忽略空格也能运行。
if (input == "end")
{
flag = false;
Console.WriteLine("结束");
}
}
其中,flag可以不出现,在if语句中直接使用break停止循环即可,即flag = false换成break。
for循环
1.语法
for(初始化;判断;修改变量)
{
//循环体
}
那么,用for循环来打印1~100该如何编写?
这里具体举例
//打印1~100
for(int i = 0 ; i < 100 ; i++)
{
Console.WriteLine(i + 1);
}
可以看出,与while相比,for循环的整体代码比while循环更短
对比while循环与for循环
while的初始化在while之外,而for循环是写在括号内第一段
while的括号内只写判断条件,而for循环的括号内第二段写判断条件
while可以不需要让变量自增,而for循环强调在括号内第三段写上变量自增
for循环将循环变量放在了循环内部,循环结束,变量消失,此外for循环的格式较为固定
符合如今的编程逻辑,循环变量在需要时初始化,使用完毕之后立即抛弃,这样的代码逻辑更简洁,更不容易出错。
反之,while循环的模式更加灵活与自由,更容易理解
但二者的执行过程类似,二者可以随意转换,只是细节和习惯的差异。我们可以根据不同的情况而灵活的使用他们。
for循环的案例1
计算1~20的和与积
//计算1~20的和与积
int sum1 = 0;
long sum2 = 1; //求积要从1开始计算,为int的范围不够时结果会输出0,可以改用long
for (int i = 1; i <= 20; i++ )
{
sum1 += i;
sum2 *= i;
}
Console.WriteLine( sum1 );
Console.WriteLine( sum2 );
for循环的案例2
寻找1~100中13的倍数
Console.Write("1~100中,13的倍数有: ");
for (int i = 1; i <= 100; i++)
{
if ( i % 13 == 0)
{
Console.Write(i + " ");
}
}
for的双重循环案例
利用for的多重循环绘制表格
for(int i = 1; i < 5; i++)
{
for (int a = 0; a < 5; a++)
{
Console.Write($" {i}-{a + 1} ");
}
Console.WriteLine();
}
打印结果为:
1-1 1-2 1-3 1-4 1-5
2-1 2-2 2-3 2-4 2-5
3-1 3-2 3-3 3-4 3-5
4-1 4-2 4-3 4-4 4-5