网站首页 > 基础教程 正文
循环就是重复执行某些语句的操作,通过C#提供的循环结构控制进行任意次的重复操作而无需每次都编写相同的代码
现实生活中的循环:打印50份试卷,在500米跑道进行10000米的长跑,年化利率5%,10年后是多少,多少年后可以到达逾期目标等等
有需求就有解决方法,通过C#提供的几种循环结构解决类似的循环问题
在程序中的循环:1)明确重复要做的事情 2)在什么情况下才做这些事情
while结构
//while结构的语法格式
//循环条件的结果值为布尔类型
while(循环条件)//在什么情况下才做这些事情
{
//循环体 重复要做的事情
//改变循环条件 此语句也可以书写在循环体上面(是循环体的一部分)
}
执行原理:首先判断循环条件结果值是否为真,如果为真则执行循环体,改变循环条件;再次判断循环条件如果为真再次执行循环体,改变循环条件;如此循环往复只要循环条件为假就退出循环,执行循环结构后面的代码
结构中的大括号:与if一样,只有一条执行语句可以不带,不过一般都会带上
循环体中一定要有改变循环条件的语句,让循环条件终有为假的时候
如果循环条件一直为真就是死循环,程序中一般不允许死循环
while循环结构中最重要的就是根据字面意思编写循环条件,其次编写循环体的内容
示例:A:打印50份试卷 B:罚抄陌生字100遍 C:在500米跑道进行10000米的长跑
//示例A
int i = 0; //声明变量
while(i < 50) //这里的i也叫循环变量
{
i++; //改变i的值 如果没有这句代码就会陷入死循环
Console.WriteLine("打印试卷,第 {0}份",i);
}
//变量i不一定非得从0开始,i=0 只为便于记数
//也可以书写为 i=50; 循环条件 i<100
//反正只要输出想要输出的次数即可
//======================================
int j = 1; //声明变量
while(j <= 50) //当 j=1时,保持输出50次 j<=50
{
j++; //改变i的值 如果没有这句代码就会陷入死循环
Console.WriteLine("打印试卷,第 {0}份",j);
}
//=======================
//执行过程:首先判断 j=1是否小于等于50,条件为真,j++;此时j=2;
//执行输出语句,再次判断j=2否小于等于50,条件为真,j++;此时j=3;
//执行输出语句,再次判断j=3...循环往复
//当再次执行j++后,此时j=51时 判断条件j<=50 条件为假,退出循环
示例B 示例C与示例A是同类型自己编写代码实现循环
有了循环可以指定循环次数(理论上无数次,实际看内存大小)
死循环:就是当循环条件一直为真时,程序就会一直循环执行,直至溢出内存
出现死循环:1)循环条件直接写true 2)循环体中没有改变循环条件或者终止循环的语句
如果出现:1)单击控制窗口右上角的X 2)在任务管理器中找到该进程右击选择结束任务
//死循环 循环条件一直为真
//方式1
int i = 0;
while (true)
{
i++; //此时的循环变量对终止循环没有作用
Console.WriteLine("打印试卷,第 {0}份", i);//i会一直累加
}
//方式2
int j = 0;
while (j <= 0)
{
//根本没有改变循环条件,j的值一直为0 所以循环条件一直为真
Console.WriteLine("打印试卷,第 {0}份", j);//j永远是0
}
//个人是不建议测试 想测试的也可以试试
示例:计算1-100内的总和,偶数与奇数各自的总和
// 总和 偶数 奇数 循环变量
int sum = 0, evenSum = 0, oddSum = 0, i = 1;
while (i <= 100)
{
if (i % 2 == 0) //i的值可以整除2表示是偶数
{
evenSum += i;
}
else
{
oddSum += i;
}
sum += i;
i++;
//因为i=0 因此 i++不能放置在if-else结构之前
//拓展思维自己尝试修改 i++上面的代码
//让 i 可以在放置在if-else结构之前
}
Console.WriteLine("总和为: {0} 偶数总和为: {1} 奇数总和为 {2}", sum, evenSum, oddSum);
Console.ReadKey();
拓展:修改为输出1到用户输入正整数之间任意数的各种总和(声明变量的范围内)比如3,4..9的倍数(建议使用switch-case结构)各自倍数的加减乘除取余等等各种要想的数据
猜你喜欢
- 2024-12-29 C#异步编程之Task的使用 c#异步处理
- 2024-12-29 「详解」源代码自动格式化工具:Artistic Style
- 2024-12-29 C# using用法 c# using语句
- 2024-12-29 MDK中使用AStyle插件对代码进行格式化处理
- 2024-12-29 c#中使用miniExcel和fastreport实现付款审批单的批量打印
- 2024-12-29 程序员必练六项目:从数据结构到操作系统,计算机教授为你画重点
- 2024-12-29 C#上位机开发入门(3) c#上位机需要学什么
- 2024-12-29 C#06(从控制台输入与类型转换) c#从控制台输入数据
- 2024-12-29 C#-循环数组结构体知识补充 055 c#用循环结构计算1+2+3+4+5+6...+100
- 2024-12-29 正确复制、重写别人的代码,不算抄袭
- 05-24php实现三方支付的方法有哪些?
- 05-24CosmicSting 漏洞影响 75% 的 Adobe Commerce 和 Magento 网站
- 05-24Java接口默认方法的奇妙用途
- 05-24抽象类和接口
- 05-24详解Java抽象类和接口
- 05-24拒绝接口裸奔!开放API接口签名验证
- 05-24每天学Java!Java中的接口有什么作用
- 05-24Java:在Java中使用私有接口方法
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- deletesql (62)
- c++模板 (62)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)