2018-11-14循环结构

循环结构

要么痛苦的坚持游戏结束 可能会升级

要么结束游戏继续的痛苦 可能有遗憾

知识点

(1) . while

(2) . break语句

(3) . do-while

(4) . for

(5) . foreach

(6) . 程序调试

一、 问题

l 实际生活中的循环:打印100份试卷

l 李四这次考试又粗心了,爸爸让他写1000遍“下次考试一定要细心”.(复印纸加三根笔)

如何编程实现上面的问题?

Console.WriteLine("下次考试一定要细心");

Console.WriteLine("下次考试一定要细心");

Console.WriteLine("下次考试一定要细心");

……

二、 While循环

(一) 语法

while(循环条件)

{

循环体;

}

(二) 执行过程

程序运行到while处,首先判断while所带的循环条件是否成立,如果成立,也就是为true,则执行大括号中的循环体,

当循环体执行完成一遍后,继续回到循环条件进行判断,如果成立,则执行,如果不成立,则跳出while循环。

每个循环都有那么一行代码,能够改变循环条件,使之终有一天不再成立,如果程序中没有那么一行代码能够改变循环条件,那么我称之为这种循环叫做死循环。

特点:****先判断,再执行,有可能一次都不执行。

(三) 流程图

[图片上传失败...(image-276557-1542156274025)]

(四) 注意事项

在写while循环的时候,一定要分析出循环体和循环条件。

(五) 解决实际问题

int i=0;

while(i<1000)

{

Console.WriteLine(“我下次一定要超越他”);

i++;

}

(六) while循环的练习

(1) . 打印10次"欢迎您来到宁波教育学院学习"

(2) . 求1-100之间的所有整数和,求1-100之间所有偶数和

int i = 1;

int sum = 0;

while (i <= 100)

{

if (i % 2 == 0)

{

sum += i;//sum=sum+i;

}

i++;

}

Console.WriteLine(sum);

Console.ReadKey();

(3) . 作业1:输入班级人数,然后依次输入学员成绩,计算班级学员的平均成绩和总成绩

Console.WriteLine("请输入班级人数");

int count = Convert.ToInt32(Console.ReadLine());

int i = 0;//声明一个循环变量,记录循环的次数

int sum = 0;//定义总成绩

while (i < count)

{

Console.WriteLine("请输入第{0}个学员的成绩", i + 1);

try

{

int score = Convert.ToInt32(Console.ReadLine());

//将每一个学员的成绩累加到总成绩中

sum += score;

i++;

}

catch

{

Console.WriteLine("输入有误,请重新输入");

}

}

Console.WriteLine("{0}个人的班总成绩是{1}平均成绩是{2}", count, sum, sum / count);

Console.ReadKey();

(4) . 2006年培养学员80000人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?

int year = 2006;

double people = 80000;

while (people <= 200000)

{

//每年增长25%

people *= 1.25;

year++;

}

Console.WriteLine("到{0}年的时候,人数将达到20万",year);

Console.ReadKey();

(5) . 作业2:编写程序,估计一个职员在65岁退休之前能赚到多少钱。用年龄和超始薪水作为输入,并假设职员每年工资增长5%。

/**

  • 估计一个职员在65岁退休之前能赚到多少钱。

  • 用年龄和超始薪水作为输入,并假设职员每年工资增长5%

  • 循环条件:小于等65

  • 循环体:工资之和

  • 每年增加5%

  • */

Console.WriteLine("请输入你现在的工资");

string str_salar = Console.ReadLine();

Console.WriteLine("请输入你的年龄");

string str_age = Console.ReadLine();

double salar=0;

int age = 0;

double sum = salar;

bool flag = true;

try

{

salar = Convert.ToDouble(str_salar);

age = Convert.ToInt32(str_age);

flag = true;

}

catch

{

Console.WriteLine("你输入的格式错误");

flag = false;

}

if (flag)

{

while (age <= 65)

{

salar *= 1.05;

sum += salar;

age++;

}

Console.WriteLine("你到65岁退休之前的工资和是:{0}", sum);

}

Console.WriteLine("程序执行完毕");

Console.ReadKey();

三、 break 关键

(一) 作用

1)、跳出switch-case语句。

2)、跳出循环

break单独放到循环中没意义,一般跟if配合着使用,表示当满足某个条件的时候,跳出循环。

(二) 演示:

int i = 0;

while (i < 10)

{

Console.WriteLine("欢迎来到宁波教育学院学习");

i++;

break;//跳出循环

}

Console.ReadKey();

(三) 练习:提示用户输入用户名和密码 admin 888888 最多让用户输入3次 如果3次都不会 则退出登录程序

/**

  • 提示用户输入用户名和密码 admin 888888

  • 最多让用户输入3次 如果3次都不会 则退出登录程序

  • 循环条件:用户名和密码都不正确

  • 循环体:用户输入用户名和密码

  • */

Console.WriteLine("请输入用户名");

string userName = Console.ReadLine();

Console.WriteLine("请输入密码");

string password = Console.ReadLine();

int num = 1; //用户记录用户输入的次数

while (("admin"!=userName) & ("88888"!=password))

{

Console.WriteLine("请再输入用户名");

userName = Console.ReadLine();

Console.WriteLine("请再输入密码");

password = Console.ReadLine();

if (num == 2)

{

break;

}

num++;

}

if(num == 2){

Console.WriteLine("你已经输入错误三次,请等100年后再来");

}

else

{

Console.WriteLine("登录成功");

}

Console.ReadKey();

四、 do-while循环

(一) 实际场景

明天小兰就要登台演出了,老师说再把明天的演出的歌曲唱一遍,如果满意,小兰就可以回家了.否则就需要再练习一遍,直到老师满意为止.(y/n)

(二) while or do-while ?

1. while循环的特点

特点:先判断,再执行,有可能一次都不执行。

2. do-while循环的特点

特点:先执行,再判断,最少执行一遍循环体。

(三) do-while循环的语法

do

{

循环体;

}while(循环条件);

(四) 执行过程

首先执行do中的循环体,执行完成后,去判断循环条件是否成立,

如果成立,则继续回到do中执行循环体,

如果不成立,则跳出do-while循环。

(五) 流程图

[图片上传失败...(image-173e8d-1542156274021)]

(六) 解决问题

1. while解决

//循环体:小兰唱一遍,问老师,老师回答

//循环条件:老师不满意

Console.WriteLine("老师,我唱的你满意么?");

string answer = Console.ReadLine();

while (answer == "no")

{

Console.WriteLine("老师,我再唱一遍,你满意么?");

answer = Console.ReadLine();

}

Console.WriteLine("OK,放学回家");

Console.ReadKey();

2. do-while解决

string answer = "";

do

{

Console.WriteLine("老师,我唱的这一遍你满意么?");

answer = Console.ReadLine();

} while (answer == "no");

Console.WriteLine("Ok,放学回家");

Console.ReadKey();

(七) 练习

1. 要求用户输入用户名和密码,只要不是admin、888888就一直提示用户名或密码错误,请重新输入

string name = "";

string pwd = "";

//循环体:输入用户名和密码 判断

//循环条件:输入错误

do

{

Console.WriteLine("请输入用户名");

name = Console.ReadLine();

Console.WriteLine("请输入密码");

pwd = Console.ReadLine();

if (name != "admin" || pwd != "888888")

{

Console.WriteLine("用户名或密码错误");

}

} while (name != "admin" || name != "888888");

Console.ReadKey();

2. 不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出

循环体:提示用户输入数字 转换 打印这个数字的2倍

循环条件:输入的不能是q

string strNumber = "";//存储的用户的输入

do

{

Console.WriteLine("请输入数字");

strNumber = Console.ReadLine();//数字 q 乱七八糟

if (strNumber != "q")//数字 乱七八糟

{

try

{

int number = Convert.ToInt32(strNumber);

Console.WriteLine("这个数字的2倍是{0}", number * 2);

}

catch//输入的是乱七八糟

{

Console.WriteLine("输入有误,请重新输入");

}

}

else//==q

{

Console.WriteLine("你输入的是q,程序退出!!!");

}

} while (strNumber != "q");

Console.ReadKey();

3. 不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值

//循环体:提示用户输入一个数字 接收 转换 比较的过程

//循环条件:输入的不能是end

string strNumber = "";

int max = 0;//用来存储最大值

while (strNumber != "end")

{

Console.WriteLine("请输入一个数字,输入end,我们将显示你输入的数字中的最大值");

strNumber = Console.ReadLine();//数字 end 乱七八糟

if (strNumber != "end")

{

try

{

int number = Convert.ToInt32(strNumber);

if (number > max)

{

max = number;

}

}

catch

{

Console.WriteLine("输入有误,请重新输入");

}

}

else//输入的是end

{

Console.WriteLine("您刚才输入的数字中最大值是{0}",max);

}

}

Console.ReadKey();

tusr53I��D

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容

  • 知识点: 注:int类型默认32位有大小范围 且第一位为符号位 0 为正 1 为负 8.4作业 A:1、风力预警系...
    cGunsNRoses阅读 1,072评论 0 0
  • 1.单分支语句if if语句的表达式:if(条件){语句块1;语句块2}//如果我们if语句块只有一个语句,那么...
    Unity开发阅读 1,065评论 1 1
  • 循环结构 要么痛苦的坚持游戏结束 可能会升级 要么结束游戏继续的痛苦 可能有遗憾 知识点 (1) . whil...
    拾起_518阅读 179评论 0 0
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,281评论 0 2
  • 当下 我坐在这里 接受风儿的邀请 听那万千枝叶的歌唱 听鸟儿欢快的啼鸣 一支红叶指向头顶的云卷云舒 观阳光穿透枝叶...
    幸福的李慧阅读 250评论 0 1