while

2024-10-23

while(共5篇)

while 篇1

1 前言

在程序设计工作中, 我们经常要使用循环语句处理一些具体任务, 但是通常会尽量避免死循环的发生, 因为我们一般认为死循环会降低工作效率, 造成程序的假死。在我看来, 这种观点不完全正确, 我们要认识到死循环中只要有结束循环的条件就是合法的循环。这种合法的循环在某种情况下反而更有利于我们解决特定问题。比如当我们遇到利用条件反复判断如何完成任务的时候, 借助构建死循环和跳出循环体的方法就能够有效地解决此类问题, 这样做的好处是比传统的解决方法编写的代码精简而且容易理解。下面我以一道C#程序设计题目为例和大家讨论一下死循环在程序设计中的妙用。

控制台程序题目:请输入用户名和密码, 如果输入的用户名不是“admin”或者密码不是“888888”, 则提示重新输入, 如果输入正确则提示登陆成功。

2 一般思路实现登陆测试

通过分析题目, 用传统思路解决这个问题有三个步骤:

⑴设置变量username, password用来储存用户输入的用户名和密码。⑵示用户首次输入用户名和密码。⑶使用while语句循环判断输入的用户名和密码是否正确, 如果不正确提示用户重新输入用户名和密码, 直至输入正确。

以下是该思路下编写的代码:

从上面代码中我们不难看出, 用户输入操作的代码出现了两次, 这就造成了代码冗余。那么有没有更好的方法解决此类问题呢, 答案是肯定的。我们来看一下利用死循环实现的登陆测试吧。

3 利用死循环实现登陆测试

思路如下:

⑴设置变量username, password用来储存用户输入的用户名和密码。⑵假设用户每次输入都不正确, 使用while (true) 语句构建一个死循环, 反复提示用户重新输入。⑶在循环体中设置当用户名和密码都输入正确作为退出循环体的条件。

代码如下:

通过跟传统思路编写的代码相比较, 我们发现, 第二种方案提示用户输入的代码只出现了一次, 有效避免了相同代码的重复, 而且理解起来更加容易。

4 利用死循环解决问题的利弊

和大家讨论的这个控制台登陆测试的小例子, 因为实现起来比较简单, 代码也不多所以似乎还未能尽显利用死循环解决问题的优越性。再比如:提示用户输入, 如果输入的是正整数则输出整数的2倍, 如果输入的是字母, 则将其大写输出, 如果输入字符串“end”, 则程序结束, 如果输入的是其他内容, 则提示“输入有误”, 只要没有输入字符串“end”, 则反复提示用户输入。这个问题就复杂一些了, 如果普通循环时考虑设定while后面的成立条件, 我们似乎无从下手。但如果利用死循环, 就只用考虑将跳出循环体的条件设为输入内容等于end字符串, 再考虑switch case中输入不同内容做不同的事情的几种情况就可以了。当然死循环我们轻易是不赞成大家用的, 因为对于多个循环嵌套发生的时候, 设定跳出循环体的语句位置我们很难把握, 进而使用死循环可能会给工作造成灾难。总之仁者见仁, 智者见智, 死循环的利用还有待进一步研究。

while 篇2

如:

We must strike while the iron is hot.

我们要趁热打铁。

Stand still while I take your photograph.

我给你拍照时站着不要动。

Have we got enough books to read while we are on holiday?

假期里我们有足够的书看吗?

Were there any calls for me while I was out?

我出去的时候,有人来过电话吗?

She hates anyone listening while she is telephoning.

她打电话时不愿让任何人听。

二、考查表示让步的用法,其意为“尽管”“虽然”。

如:

While the work was difficult, it was interesting.

虽然工作有难度,但很有趣。

While I understand what you say, I can’t agree with you.

虽然我理解你的意思,但我还是不同意。

While the Internet is of great help, I don’t think it’s a good idea to spend too much time on it.

虽然因特网很有帮助,但我还是认为在其上花太多的时间不是个好主意。

While we don’t agree we continue to be friends.

尽管我们意见不同,我们还是朋友。

While I did well in class, I was a poor performer at games.

虽说我学习不错,我运动却不行。

While a few became richer, many did not.

虽然一些人变得更富有了,但多数人并非如此。

三、考查表示对比的用法,其意为“而”“但”。

如:

In some places women are expected to earn money while men work at home and raise their children.

有些地方妇女挣钱,而男子则在家里持家和带孩子。

Air is a fluid but not a liquid, while water is both a fluid and a liquid.

空气是流体不是液体,水是流体也是液体。

Some people waste food while others haven’t enough.

一些人糟踏食物而另一些人却食不果腹。

I went swimming while the others played tennis.

我去游泳,而其余的人则去打网球了。

Prices are rising sharply, while incomes are lagging far behind.

物价飞涨而收入却远远落后。

注意:这样用时,while引出的句子通常位于末,但有时也可位于句首。

如:

While most children learn to read easily, some need extra help.

大多数儿童学会阅读很容易,有一些儿童却需要特别帮助。

While some languages have 30 or more different vowel sounds, others have five or less.有些语言有30个或更多的元音,而其他语言只有5个或更少的元音。

While Deauville is a holiday resort, Trouville is more of a working town.

特维尔是个度假胜地,而特鲁维尔更多的却是个工业城市。

四、考查其省略用法,即主句与从句主语相同,且从句谓语动词含有动词be时,通常可省略从句主语和动词be。

如:

While (he was) in prison, she wrote her first novel.

她在狱中写出了第一部小说。

He had strayed from home while still a boy.

他小时候就离开家到处流浪了。

He fell asleep while (he was) doing his homework.

他做着做着功课就睡着了。

I was only listening to the radio with half an ear, while (I was) preparing some food.

While在英语中的用法 篇3

while在时间状语从句中的使用(=during the time that在…期间,当…时候;at the same time as与…同时):

此时while只指“时间段”,不指“时间点”,用于较长的时间,强调主从关系的谓语动作同时进行,从句的动词只限于持续性动词。

Eg:While I was Madrid there was a carnival.我在马德里的时候,正赶上狂欢节。

While Mary was writing a letter,the children were playing outside.玛丽写信时,孩子都在外面玩。

He listens to the radio while driving to work.他去上班,边开车边听音乐。

当从句动作和主句动作同时发生,且从句的谓语动词是延续性动词时,可用when和as替换while引导状语从句:

Eg;whenwhileas we were dancing,a stranger came in(dance 为 延续性动词)当我们跳舞时,一位陌生人进来。

When while as she was making a phone call,i was writing a letter(make 为延续性动词)当她在打电话时,我正在寫信。

3. 从句的动作若表状态,通常用while.

Eg:Strike while the iron is hot.趁热打铁。

当while表示同时存在的两种事物对比时,while为并列连接词,引导的是并列句,译作“然而”。

Eg:I drink black coffee while he prefers it with cream.

English is understood all over the world while Turkish is spoken by only a few people outside Turkey itself.

while (=although)作连词‘虽然‘,引导让步状语从句。

Eg:While I admit that there are problems,I don’t agree that they cannot be solved.尽管我承认有问题存在,但我不同意说这些问题不能解决。

While I understand what you say,I can’t agree with you.尽管我明白你的话,但我还是不同意。

while做连词“只要”,引导让步状语从句:

Eg:While there is life,there is hope.只要有生命就会有希望(生命常在,希望常在)。

while 篇4

任务驱动教学法是指在学习的过程中,学生以一个或多个任务为中心,在强烈的问题动机的驱动下,在教师的引导和启发下,通过对学习资源的主动应用,进行自主探索和协同合作,使其在完成既定任务的同时,不断获得成就感,并进一步激发他们的求知欲望,逐步形成一种教与学的良性循环,从而培养出学生善于思考、勇于进取的自学精神。

C语言作为一种基础而实用的计算机程序设计语言,多年来在国内外得到广泛使用,被视为计算机专业人员的基本功。《C语言程序设计》是我院计算机应用技术专业的一门职业基础课。通过该课程的学习,使学生掌握C语言的基本语法、程序设计的基本结构和程序调试的基本方法,培养学生程序设计的思路及能运用C语言解决实际问题的能力。

为了提高学生职业技能,落实工学结合的教育理念,根据软件开发岗位群及能力要求,改革传统的课程体系和教学方法,遵循以实践技能培养为主、理论知识够用为度的原则,基于模块化和工作过程导向来对课程内容进行设计,使其更贴近工作实际。以任务驱动教学法取代原来的传统教学法,从应用的角度出发,以实现编程为目的,采用任务驱动的方式,将算法和语法规则紧密结合,由浅入深地介绍如何用C语言处理问题,使学生在富有创意、引人入胜的编程过程中,领悟程序设计的思想和方法,最终达到学习知识、培养学生计算机职业能力的目标。本文以C语言循环结构中的while语句为例,设计2学时的教学过程,分析任务驱动法在《C语言程序设计》教学中的实际应用。

2. 教学设计

2.1 教学目标

知识目标:知晓while语句的一般形式、执行过程和特点

能力目标:掌握while语句的使用方法

掌握如何构成一个有效循环

熟练掌握C语言程序运行的步骤和方法

素质目标:培养学生分析问题和解决问题的思维能力

培养学生从已有知识出发、善于总结和自主学习的能力

培养学生的团队协作精神和竞争意识

2.2 教学方法

综合使用任务驱动法、启发法、演示法、分组讨论法等多种教学方法

2.3 教学重难点

教学重点:如何用while语句实现循环

教学重点:构成一个有效循环的两个因素(循环体、循环结束条件)

2.4 教学设计思路

本次课利用2学时的时间,围绕“用while语句实现循环”这个主题,经过课前预习、任务引入、必备知识、任务实施、任务拓展、任务小结和布置课后实训任务等七个环节来开展教学,以达到既定的任务目标。

2.5 教具

机房、投影仪、Win-TC C语言编译软件、PPT课件、任务单

3. 教学过程

3.1 课前准备

课前通过班级QQ群将本次课的任务单(如图1所示)发给学生,鼓励学生通过教材、网络和C语言宝典app等多种渠道查找资料完成课前预习工作。

将全班同学划分成5个小组,每个小组选出一位组长负责协助教师开展教学。每个任务都要求以小组的方式来完成,对任务完成得又快又好的小组予以平时分的奖励。这样既强调了团队协作精神,又培养了学生的竞争意识。

3.2 教学环节与实施

3.2.1 课前预习

预习工作已在课前布置下去了,通过课前预习使学生对循环结构的相关概念有一个基本的认识和了解。课上选4个小组分别对课前预习中提出的问题作答,教师予以点评和打分。

3.2.2 任务引入

本次课的基本任务是:用while语句编程实现:1+2+3+…+100,即。这是个累加的问题,需要重复100次加法运算,既然需要重复处理,就可用循环结构来实现。

3.2.3 必备知识

教师通过讲授的方式,介绍while语句的一般形式、执行过程和特点,并画出语句的流程图,让学生掌握该语句的相关理论。

3.2.4 任务实施

1)解题思路

针对基本任务,同学们集思广益提出解决问题的思路。选择1到2个小组来陈述解题思路。对同一个问题,可以有不同的算法来实现。比如有将这100个数化为50组头尾两数之和,即(1+100)+(2+99)+(3+98)+…+(49+52)+(50+51)=101×50=5050。还有的采用(1+99)+(2+98)+…+(49+51)+50+100=5050。这些算法都比较适合于心算,计算机是不会按上面的方法进行自动分组的,必须由人事先设计好计算的方法。其实对于这类简单的计算问题完全没有必要去设计巧妙的算法,因为计算机最大的特点就是运算速度快,所以完全可以用“笨”办法去处理这个问题,就是采取一个数一个数累加求和。

2)用流程图表示算法。

要实现算法,首先要考虑所需的变量个数和类型。本题中需要2个整型变量,一个变量sum用来存放累加的值,另一个变量i用来存放准备累加到sum的数值,让i从1变到100,先后累加到sum中去。

老师带领学生画出程序流程图,并利用PPT动画对循环执行过程进行分解演示,详细分析while语句是如何实现1到100的累加求和。

3)编写程序

在流程图的基础上,用C语言实现算法。以小组为单位完成编程任务,选择1个小组对所编写的程序进行讲解。教师需要强调while语句使用时的两个要点。一是循环体中如果包含一个以上的语句,需要用大括号括起来,以复合语句形式出现。二是在循环体中应有使循环趋向于结束的语句。

4)程序运行

选择1个小组,让其代表上台演示程序运行的过程。在Win-TC这个C语言编译软件中,独立完成源程序的输入和编辑、编译和连接、执行等步骤,并检查运行结果。

5)程序分析

提醒学生注意,while循环中判断的条件应是使循环继续的条件,而不是使循环结束的条件。在这个程序中,循环继续的条件是i≤100,循环结束的条件是i>100,千万不要弄混。同时给出一个思考题,如果将while语句中的条件分别改为i>100和i<100,输出结果会发生什么样的变化。要求学生将这两个条件分别代入到程序中进行运行,分析出现相应结果的原因,并填写“任务单”上的程序运行情况表,填完后分别请2组同学分析作答。

3.2.5 任务拓展

要求学生用while语句编程实现:统计从键盘输入一行字符的个数。要求从算法分析、流程图绘制、程序编写和运行4个步骤出发完成拓展任务。完成后请2组同学就程序分析与设计、程序编写和运行两个方面问题分别进行讲解演示,教师予以点评和打分。注意本题中的循环条件和循环体的构建,循环条件“getch()!=’’”表示只要从键盘上输入的字符不是“回车”就继续循环,循环体则用来完成对输入字符个数的统计。

3.2.6 任务小结

请一组同学对本次课所学的知识点进行归纳总结,其他小组同学予以补充。

3.2.7 布置课后实训任务

课后要求学生用while语句编程实现n!,即1×2×3×…×n。课上讲的是100个数的累加求和,课后学生需要完成n个数的累乘求积。要求学生在“任务单”上画出程序流程图,将编写的程序和运行的结果截图后粘贴到“任务单”上,待下次课时检查并收取。

4. 结束语

任务驱动教学法创造了学生主动参与、自主协作、探索创新的新型学习模式,凸显了“以任务为主线、教师为主导、学生为主体”的特点。将其应用于《C语言程序设计》课程的教学实践中,通过创设真实的教学情境,围绕任务展开教学,让学生带着任务学习,把C语言中枯燥无味的语法规则转变成生动有趣的编程任务,并以任务完成的结果来检验学习效果,这样既能激发学生的学习热情,又能使学生自动构建一种探究、实践、思考、运用的学习体系。

参考文献

do语句改写为while语句 篇5

课程3中,提到C语言基本语句分为:数据定义语句,数据处理语句

数据处理语句又可分为:表达式语句,函数调用语句,空语句(;),复合语句,流程控制语句。

流程控制:指程序代码执行的顺序。流程的分类:顺序、选择、循环。

C语言的循环结构通过三种语句来实现,即while、do-while、forWhile语句的一般形式while(循环条件表达式)循环体语句;

功能:当循环条件表达式为真,执行循环体语句,执行完了,再判断条件表达式是否为真,为真,则再执行,直到条件表达式为假时,退出while循环。

实例1:用while语句求1~100的累加和。

#include//C语言编译预处理命令,文件包含为stdio.h

voidmain//至少有一个用main()命名的主函数,返回值为void无值类型{

inti=1,sum=0;/*初始化循环,定义变量i和累加器sum,定义和之前,累加器清零*/

while(i<=100)

{

sum+=i;//sum+=i是一个复合赋值运算符,等价于sun=sun+i;i++;

}

printf(“1+2+3+...+100=%d ”,sum);//输出十进制数,1加到100累加器的和}

MicrosoftVisualC++6.0运行结果

使用while循环时,一定要对循环条件表达式中出现的变量提前赋值,并在循环体内修改有关变量的值,以使循环能趋于终止。

While循环为当型循环,do-while循环也叫直到型循环。

do-while语句的一般形式为:

do

{

循环体语句}while(

循环条件表达式

)

实例2:用do-while编制一个求n!的程序,n的值由键盘输入。

#include

voidmain()

{inti=1,n,p=1;

printf(“请从键盘输入一个数,进行连乘积: ”);

scanf(“%d”,&n);

do

{p=p*i;

i++;

}while(i<=n);

printf(“连乘积的结果为p=n!:%d ”,p);

}

分析:此程序,先定义三个变量i、n、p,p从p乘1开始执行,再i进行自增1,循环体中的语句执行完毕后,判断while的循环条件表达式,当i自增1为2时,看2是否<=输入的n值,若为真,则继续返回do循环,直到i自增的值比n大,则退出循环。

do-while主要用于人机交互,do-while循环是先执行后判断,do里面的循环体至少被执行一次。区别于while是先判断循环条件表达式,后执行。

for循环也叫步长型循环

一般格式:for(表达式1;表达式2;表达式3)循环体语句;

功能:先执行表达式1,再执行表达式2,如果表达式2的值为真,就执行循环体语句,最后执行表达式3.完成一次循环后,从表达式2执行,直到表达式2为假,退出循环。

实例3:参考实例1,用while求1~100的累加和,现在用for语句求1~100的累

加和。

#include

intmain(void)

{

inti;intsum=0;

/*初始化循环,定义变量i

和累加器sum,定义和之前,累加器清零*/

for(i=1;i<=100;i++)

{

sum=sum+i;

}

printf(“sum=%d ”,sum);

return0;

}

实例4:爱因斯坦的`阶梯问题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请问该阶梯至少有多少阶。编写一个C程序解决该问题。

#include

main()

{intx;

for(x=7;;x+=7)

if(x%3==2&&x%5==4&&x%6==5)

break;

printf(“Thenumberoftheladdersis:%d ”,x);

}

分析:发现x一定是7的整数倍,可以依次递增地求出7的整数倍的值(7*1、7*2、7*3……),每求出一值,就用该值与2、3、5、6进行取模运算,最先得到的满足上述5个方程式的x值即为本题的答案。

用while语句,简单快速实现爱因斯坦的阶梯问题

#include

intmain()

{

inti=1;/*i为所设的阶梯数*/

while(!((i%2==1)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==0)))

【while】推荐阅读:

上一篇:新型诈骗案件下一篇:树立习惯

本站热搜

    相关推荐