吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 4592|回复: 18

[C#] C#初级开发原创教程第八课 循环结构(二)

[复制链接]
王尼玛 发表于 2014-10-12 19:24 | 显示全部楼层 |阅读模式

本帖最后由 王尼玛 于 2014-10-24 01:13 编辑

大家好,我是王尼玛。今天起我给大家讲解C#开发教程,本次是第八课。大家在课后有什么疑问可以跟帖留言,我会尽我所能来解答。毕竟众口难调,大家有什么建议也可以跟帖告诉我。
此教程为本人原创,转载请注明"吾爱汇编论坛王尼玛原创"
好了,废话不多说,开始今天的学习.

有朋友说不太明白我写的教程,其实编程这东西很简单,一个字,练!你光看我写的多半是一头雾水,因为你没实际跟着我讲的代码去操作,你要跟着我的代码敲,多敲代码,多练习我给的例子,再配合我例子后面的讲解,自然就明白我讲的是什么了.还不明白?跟帖问吧



1.什么是for循环
语法:
  1. for(表达式1,表达式2,表达式3){
  2.    //循环体
  3. }
复制代码
三个表达式的含义:
表达式 形式 功能
表达式1 赋值语句
循环结构的初始部分,为循环变量赋初值
表达式2 条件语句循环结构的循环条件
表达式3 赋值语句,通常使用++或--运算符 循环结构的迭代部分,通常用来修改循环变量的值
for关键字后面括号中的三个表达式必须用";"隔开.for循环中的三个部分以及{}中的循环体使循环结构必需的四个组成部分完美地结合在了一起

2.如何使用for循环
问题:
循环输入某同学结业考试的五门课成绩,并计算平均分
分析:
很明显,循环次数是固定的五次,因此我们首选for循环.使用for循环结构的步骤和使用while/do-while一样,首先要明确循环条件和
循环操作,这里的循环条件是"循环次数不足5次,继续执行",循环操作是"录入成绩,并计算成绩之和"

解决方案:
  1.             int score;//每门课的成绩
  2.             int sum = 0; ;//成绩之和
  3.             double avg = 0.0;//平均分
  4.             for (int i = 0; i < 5;i++ )
  5.             {
  6.                 Console.WriteLine("请输入第"+(i+1)+"门成绩:");
  7.                 score = int.Parse(Console.ReadLine());
  8.                 sum = sum + score;
  9.             }
  10.             avg = sum / 5;//计算平均分
  11.             Console.WriteLine("平均分是" + avg);
复制代码
运行结果:
QQ截图20141012182030.png
3.break语句的使用
我们在学习switch结构时,已经使用过break了,break语句用于终止switch语句中的某个分支,使程序跳到switch外的下一条语句,那么在
循环中,break能发挥什么样的作用?

问题:
循环录入五门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误!
分析:
在录入的过程中,进行条件判断.如果录入为负,立刻跳出循环.我们使用break语句来解决
解决方案:
  1.             int score;//每门课的成绩
  2.             int sum = 0; ;//成绩之和
  3.             double avg = 0.0;//平均分
  4.             bool isNegative = false;//是否为负数
  5.             for (int i = 0; i < 5;i++ )
  6.             {
  7.                 Console.WriteLine("请输入第"+(i+1)+"门成绩:");
  8.                 score = int.Parse(Console.ReadLine());
  9.                 if (score < 0)
  10.                 {
  11.                     isNegative = true;
  12.                     break;
  13.                 }
  14.                 sum = sum + score;
  15.             }
  16.             if(isNegative)
  17.             {
  18.                 Console.WriteLine("录入错误");
  19.             }
  20.             else
  21.             {
  22.             avg = sum / 5;//计算平均分
  23.             Console.WriteLine("平均分是" + avg);
  24.             }
复制代码
运行结果:
QQ截图20141012182030.png
4.continue语句的使用
根据要求,在循环语句中的if结构中使用break语句跳出循环.但是,可能你也会遇到,在某次循环中,我们不想执行完所有的循环体,就想跳出本次循环开始
执行下一次循环

问题:
循环录入学生C#成绩,统计分数大于80分(包括等于)的学生比例
分析:
使用循环语句录入学生成绩并累计人数,这对我们并不是难题,但是如果仅仅要累积满足分数大于等于80分的人数,该怎么办呢?有一种方法就是使用
continue语句控制累积操作是否进行
解决方案:
  1.             int score= 0;//成绩
  2.             int total;//班级总人数
  3.             int num = 0;//成绩大于等于80的人数
  4.             Console.WriteLine("输入班级总人数");
  5.             total = int.Parse(Console.ReadLine());
  6.             for(int i = 0;i<total;i++)
  7.             {
  8.                 Console.WriteLine("请输入第" + (i + 1) + "个学生的成绩");
  9.                 score = int.Parse(Console.ReadLine());
  10.                 if(score<80)
  11.                 {
  12.                     continue;
  13.                 }
  14.                 num++;
  15.             }
  16.             Console.WriteLine("80分以上的人数是{0}", num);
复制代码
运行结果:
QQ截图20141012182030.png

这节课就到这,谢谢大家

王尼玛C#初级开发原创教程目录:
1.C#初级开发原创教程第一课  Visual Studio 2013的安装
2.C#初级开发原创教程第二课 控制台的输出
3.C#初级开发原创教程第三课 数据类型转换
4.C#初级开发原创教程第四课 深入控制台应用程序
5.C#初级开发原创教程第五课 bool类型,关系运算符与if选择结构
6.C#初级开发原创教程第六课 复杂选择结构
7.C#初级开发原创教程第七课  循环结构(一)
8.C#初级开发原创教程第八课 循环结构(二)
9.C#初级开发原创教程第九课 数组
10.C#初级开发原创教程第十课 面向对象之类和对象
11.C#初级开发原创教程十一课 类的无参方法
12.C#初级开发原创教程十二课 带参数的方法(一)
13.C#初级开发原创教程第十三课 字符串的操作


评分

参与人数 13HB +22 THX +7 收起 理由
29590 + 1
消逝的过去 + 2
VipDongle + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
agan8888 + 1
ldljlzw + 1
EMT + 1 + 1
ding520 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
2528446893 + 1 吃水不忘打井人,给个评分懂感恩!
创意合成 + 1 学破解论坛1周年了,感谢大家的付出与关注。学破解论坛助你呼风唤雨!!!
有何不可 + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
Dean + 3 + 1 我很赞同!
Shark恒 + 10 + 1 你将受到所有人的崇拜!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2014-10-12 19:27 | 显示全部楼层

每课都是精华,每课都要认真制作啊。尼玛,加油!

点评

王尼玛”点评说:
感谢恒大支持!  详情 回复 发表于 2014-10-12 19:33
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 王尼玛 发表于 2014-10-12 19:33 | 显示全部楼层

Shark恒 发表于 2014-10-12 19:27
每课都是精华,每课都要认真制作啊。尼玛,加油!

感谢恒大支持!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
彡墨鱼灬丶 发表于 2014-10-12 19:46 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Dean 发表于 2014-10-12 20:43 | 显示全部楼层

课程出得好快,一定要支持
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
大官人 发表于 2014-10-12 21:03 | 显示全部楼层

for (int i = 0; i < 5;i++ )
int i=0 应该是把i赋予0
i<5应该是条件  i+5 或者大于5就不再循环执行
i++啥意思

点评

王尼玛”点评说:
其实很好理解,int i = 0;i  详情 回复 发表于 2014-10-12 21:06
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
大官人 发表于 2014-10-12 21:06 | 显示全部楼层

如果我是循环5次 或者我不知道到底循环几次 这个i<5 要改成什么样子
比如我读一个文件 里面用;分开 为1个数组

比如
111111 2222222;
333333 4444444;
这个数组想把它输出出来为
  账号11111  密码 22222
账号33333  密码44444

我用按键的For语句很好解决 看了半天 这个c#咋解决啊



点评

王尼玛”点评说:
for循环的前提就是知道要循环几次,不确定的可以使用while或者do-while来限制循环条件,用你说的举个例子, 你要读取一个txt,但是不知道有多少行,这时候就可以用while循环了:  详情 回复 发表于 2014-10-12 21:47
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 王尼玛 发表于 2014-10-12 21:06 | 显示全部楼层

大官人 发表于 2014-10-12 21:03
for (int i = 0; i < 5;i++ )
int i=0 应该是把i赋予0
i

其实很好理解,int i = 0;i<5;i++
从0开始循环,循环到4,因为是小于5嘛,循环一次,i就自增一次,变成1,下一次循环变2,再下一次变3,懂了吧
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
大官人 发表于 2014-10-12 21:38 | 显示全部楼层

王尼玛 发表于 2014-10-12 21:06
其实很好理解,int i = 0;i

i++ 的意思是每次+1?

点评

王尼玛”点评说:
i++,表示循环一次之后,i自增一次,相当于i+1  详情 回复 发表于 2014-10-12 21:48
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 王尼玛 发表于 2014-10-12 21:47 | 显示全部楼层

本帖最后由 王尼玛 于 2014-10-13 15:35 编辑
大官人 发表于 2014-10-12 21:06
如果我是循环5次 或者我不知道到底循环几次 这个i

for循环的前提就是知道要循环几次,不确定的可以使用while或者do-while来限制循环条件,用你说的举个例子,
你要读取一个txt,但是不知道有多少行,这时候就可以用while循环了:
  1. <blockquote>StreamReader sr = File.OpenText(@"D:\hehe.txt");//文件读取流
复制代码




吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表