问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

for 循环与while循环的区别

发布网友 发布时间:2022-04-21 22:14

我来回答

12个回答

懂视网 时间:2022-04-18 00:25

在我们日常生活中偶尔会遇到一些自己不知道如何解决的问题,比如for循环和while循环的区别。那么我们应该怎样解决这种自己不知道for循环和while循环的区别的情况呢?那么接下来就由我来介绍一下for循环和while循环的区别吧。

区别一:

使用场景不同:

知道执行次数的时候一般用,条件循环时一般用while。


区别二:

两种循环在构造死循环时的区别:

while循环里的条件被看成表达式,因此,当用while构造死循环时,里面的TRUE实际上被看成永远为真的表达式,这种情况容易产生混淆,有些工具软件如PC-Lint就会认为出错了,因此构造死循环时,最好使用for(;;)来进行。

看了我的方法,现在你知道for循环和while循环的区别了吗?学会了的话就快快把这个方法分享出去,让更多的人知道for循环和while循环的区别。以上就是for循环和while循环的区别。

热心网友 时间:2022-04-17 21:33

do-while循环的与for循环,while循环的区别:

一、循环结构的表达式不同

do-while循环结构表达式为:do{循环体;}。

for循环的结构表达式为:for(单次表达式;条件表达式;末尾循环体){中间循环体;}。

while循环的结构表达式为:while(表达式){循环体}。

二、执行时判断方式不同

do-while循环将先运行一次,因为经过第一次do循环后,当检查条件表达式的值时,其值为 不成立时而会退出循环。保证了至少执行do{ }内的语句一次。

for循环执行的中间循环体可以为一个语句,也可以为多个语句,当中间循环体只有一个语句时,其大括号{}可以省略,执行完中间循环体后接着执行末尾循环体。

while循环执行时当满足条件时进入循环,进入循环后,当条件不满足时,执行完循环体内全部语句后再跳出(而不是立即跳出循环)。

三、执行次数不同

do-while循环是先执行后判断,执行次数至少为一次。

for循环是先判断后执行,可以不执行中间循环体。

while循环也是先判断后执行,可以不执行中间循环体。

四、执行末尾循环体的顺序不同

do-while循环是在中间循环体中加入末尾循环体,并在执行中间循环体时执行末尾循环体。

for循环的中间循环体在条件判断语句里,执行末尾循环体后自动执行中间循环体。

while循环的末尾循环体也是在中间循环体里,并在中间循环体中执行。

参考资料来源:百度百科——do while

百度百科——for循环

百度百科——while

热心网友 时间:2022-04-17 22:51

在C语言里面,所有可以用while循环解决的问题,都是可以用for循环解决的,for(代码1;代码2;代码3)中,代码1作为初始化用,代码2作为判断,代码3作为自增或自减用,使结果慢慢向代码2的判断语句成立。VB里面的话,for
是在知道循环次数的情况下用,for
a=1
to
100,这样子。希望有帮助,谢谢。

热心网友 时间:2022-04-18 00:25

一楼二楼都对

for语句是先判断循环条件,再执行循环语句.
while语句则正好相反
回答者:马义德 - 助理 二级 9-19 18:28

三楼就不对了,while语句同样可以先判断循环条件,再执行循环语句

热心网友 时间:2022-04-18 02:17

while(参数) 参数--循环条件 如:while(i>1)

for(参数1;参数2;参数3)
参数1--变量循环前的赋值或者不要参数
参数2--循环条件
参数3--表达式
如:for(i=1;i<11;i++)

热心网友 时间:2022-04-18 04:25

for语句是先判断循环条件,再执行循环语句.
while语句则正好相反

热心网友 时间:2022-04-18 06:49

语句的表达方式不一样,但是一定程度上可以互相改写的.
但是一般来说for用于次数一定的循环,while用于次数未知的循环

热心网友 时间:2022-04-18 09:31

FOR循环是当知道循环次数时用地(EG:FOR I:=1 TO 10)
WHILE 是不知次数时用(符合条件时循环)
EG:(PASCAL)
READLN(N);
WHILE N=0
N:=N-1;
WRITELN(N);
END;
REPEAT 循环与WHLIE一样,只是符合条件时退出循环.
EG:(PASCAL)
READLN(N);
REPEAT
N:=N+1;
WRITELN(N);
UNTIL N<1000;

热心网友 时间:2022-04-18 12:29

仅仅是为了方便书写,
比如迭代时使用for就比while 直观些。
学过编译原理都知道编译出来的代码并没有什么大的区别。编译器为了优化,把所有的循环都预先转换成
do while 循环,再做进一步处理。
所以只要你觉得方便,用那个都无所谓,只要写出来的代码还看,容易理解。

热心网友 时间:2022-04-18 15:43

for 循环用于已知循环次数
while循环用于未知循环次数

热心网友 时间:2022-04-18 19:15

登陆www.sqlus.com 很多计算机应用教程,绝对能解答你的困惑。

热心网友 时间:2022-04-18 23:03

循环结构是指在满足循环条件时反复执行循环代码代码块,直到循环条件不能满足为止。一个循环语句一般应包含4个部分的内容:
初始化部分:设置循环控制的一些初始条件
循环体部分:反复执行的代码
迭代部分:修改循环控制条件
判断部分:判断是否继续循环执行体

while循环
格式如下:
初始化部分;
while(判断部分){
循环体部分;
迭代部分;

其中初始化部分和迭代部分可以没有。如果有初始化部分,程序先执行初始化部分,再执行判断部分,如果为真值,则执行红色显示的部分(即执行循环体部分,如果有迭代部分,执行迭代部分),然后再执行判断部分,如果为真值,再执行红色显示的部分,直至判断部分运算的结果为假值结束循环。请看程序示例一:
public class WhileDemo {
public static void main(String[] args) {

String copyFromMe = "Copy this string until you " +
"encounter the letter 'g'.";
StringBuffer copyToMe = new StringBuffer();

int i = 0;
char c = copyFromMe.charAt(i);

while (c != 'g') {
copyToMe.append(c);
c = copyFromMe.charAt(++i);
}
System.out.println(copyToMe);
}
}
程序示例一
关于该程序的详细执行过程以及详细的注释,请选择代码分析窗口。
源程序分析:程序的主要功能是将字符串copyFromMe中的第1个字符到字符'g‘,赋给字符串copyToMe。蓝色显示的语句是得到一个空的StringBuffer,StringBuffer和String的区别在于StringBuffer的长度可以变化,即可以向其中加入或删除字符,但字符串的效率较高,StringBuffer和String的概念还要在下一章进一步澄清。红色显示的表达式的运算结果是字符'C',即字符串copyFromMe的第0个字符。绿色显示的语句是向字符串缓冲区的尾部添加一个字符,即变量c的值。

do-while循环
格式如下:
初始化部分;
do{
循环体部分;
迭代部分;
}while(判断部分)
其中初始化部分和迭代部分可以没有。如果有初始化部分,程序先执行初始化部分,再执行红色显示的部分(即执行循环体部分,如果有迭代部分,执行迭代部分),然后再执行判断部分,如果为真值,执行红色显示的部分,一直到判断部分的结果为假值结束循环。do-while循环与while循环的区别在于do-while循环先执行一遍红色显示的部分,再运算判断部分,根据其结果来判断是否结束循环,所以红色显示的部分至少执行一遍,而while循环先运算判断部分,所以有可能红色显示的部分还没有执行就结束了。请看程序示例二:
public class DoWhileDemo {
public static void main(String[] args) {

String copyFromMe = "Copy this string until you " +
"encounter the letter 'g'.";
StringBuffer copyToMe = new StringBuffer();

int i = 0;
char c = copyFromMe.charAt(i);

do {
copyToMe.append(c);
c = copyFromMe.charAt(++i);
} while (c != 'g');
System.out.println(copyToMe);
}
}
程序示例二
关于该程序的详细执行过程以及详细的注释,请选择代码分析窗口。
源程序分析:红色显示的语句功能已经在前面的例子中已经澄清

for循环
for循环是使用最广泛的一种循环结构,格式如下:
for(初始化部分;判断部分;迭代部分;){
循环体部分;

其中初始化部分可以没有,如果有初始化部分,首先执行初始化部分,然后执行判断部分,如果结果为真值,执行循环体部分,最后执行迭代部分。完成一次循环后,再执行判断部分,直到其结果为假值 。
结束循环。for循环通常用于循环次数可以确定的情况,也可用于不确定的情况。注意:初始化部分和迭代部分可以使用逗号来分隔多个语句,如下所示:
for(int i=0,int j=0;i<j;i++,j--){......}
请看程序示例三
public class ForDemo {
public static void main(String[] args) {
int[] arrayOfInts = { 32, 87, 3, 589};

for (int i = 0; i < arrayOfInts.length; i++) {
System.out.print(arrayOfInts[i] + " ");
}
System.out.println();
}
}

程序示例三
关于该程序的详细执行过程以及详细的注释,请选择代码分析窗口。
源程序分析:该程序的功能是在控制台上显示一个数组的全部元素。红色显示的语句是定义一个int型数组变量arrayOfInts,即数组的每个元素是int型数据,同时给arrayOfInts赋初值。蓝色显示的表达式得到arrayOfInts的长度,即它的元素个数,在这里为4。绿色显示的表达式是得到arrayOfInts元素的值,i是索引值,例如当i等于0时,arrayOfInts[i]的值是32。
在以上循环的执行过程,通过break语句和continue语句可以结束循环体部分的执行

break语句
break语句的功能是结束整个循环结构的执行,从紧跟循环结构的第一条语句始执行。请看程序示例四:
public class BreakDemo {
public static void main(String[] args) {

int[] arrayOfInts = { 32, 87, 3, 589, 12, 1076,2000, 8, 622, 127 };
int searchfor = 12;

int i = 0;
boolean foundIt = false;

for ( ; i < arrayOfInts.length; i++) {
if (arrayOfInts[i] == searchfor) {
foundIt = true;
break;
}
}

if (foundIt) {
System.out.println("Found " + searchfor + " at index " + i);
} else {
System.out.println(searchfor + "not in the array");
}
}
}
程序示例四
关于该程序的详细执行过程以及详细的注释,请选择代码分析窗口。
在程序示例四中,break语句是结束内层循环,即跳出里面的花括号,事实上,可以用"标签化中断"语句跳出任意的嵌套的花括号中的代码块,请看程序示例五:
public class BreakWithLabelDemo {
public static void main(String[] args) {

int[][] arrayOfInts = { { 32, 87, 3, 589 },
{ 12, 1076, 2000, 8 },
{ 622, 127, 77, 955 }
};
int searchfor = 12;

int i = 0;
int j = 0;
boolean foundIt = false;

search:
for ( ; i < arrayOfInts.length; i++) {
for (j = 0; j < arrayOfInts[i].length; j++) {
if (arrayOfInts[i][j] == searchfor) {
foundIt = true;
break search;
}
}
}

if (foundIt) {
System.out.println("Found " + searchfor + " at " + i + ", " + j);
} else {
System.out.println(searchfor + "not in the array");
}

}
}
程序示例五
关于该程序的详细执行过程以及详细的注释,请选择代码分析窗口。
源程序分析:红色显示的语句是"标签化中断"语句,它的功能是跳到标签search(蓝色显示)处的语句的下一条语句开始执行。绿色显示的语句是定义一个二维数组,二维数组是指它的每个元素是一个数组,在这里它的第0个元素是数组{ 32, 87, 3, 589 },同时给它赋初值。银色显示的表达式arrayOfInts.length是得到二维数级arrayOfInts的长度,在这里是3。*显示的表达式是得到二维数级arrayOfInts的第i个元素的第j个元素的值,例如当i和j的值分别是1和2时,表达式arrayOfInts[i][j]的值是77。

continue语句
continue语句的功能是跳过循环体中下面还未执行的语句,回到循环体部分的开始,从第一条语句始执行,但是在执行前,先要执行判断部分,以决定是否继续执行循环,对于for循环,在执行判断部分前,还要执行迭代部分。请看程序示例六:
public class ContinueDemo {
public static void main(String[] args) {

StringBuffer searchMe = new StringBuffer("peter piper picked a peck of pickled peppers");
int max = searchMe.length();
int numPs = 0;

for (int i = 0; i < max; i++) {
if (searchMe.charAt(i) != 'p')
continue;
numPs++;
searchMe.setCharAt(i, 'P');
}
System.out.println("Found " + numPs + " p's in the string.");
System.out.println(searchMe);
}
}
程序示例六
关于该程序的详细执行过程以及详细的注释,请选择代码分析窗口。
另外,continue语句也可以跳转到标签指明的地方去,格式为:continue 标签名,由于用得较少,这里就不再详述了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
QQ视频过期了怎么恢复正常呢? 有没有酒友买了曜隐今年那款牛年纪念版酱酒啊,想问一下这个纪念版的包装... 买过曜隐酱酒的朋友觉得他们的包装怎么样呀,看起来高端显品位吗?_百 ... 最近收到客户送的一瓶曜隐酱酒,觉得这个酒的瓶盖很有特色哇,大家知道... 我的用Psiloc irRemote不知道这么用 TOSHIBA东芝55U3800C PRO液晶电视推荐 电视设置了每天12点定时关机,有一天11点就提前手动关电视了,定时设置需 ... 变频器维修,维修变频器电路板 建行帐号指的是什么 癌症临床表现 癌症的症状有哪些 手机恢复出厂设置,就意谓着不留任何痕迹了吗? 恢复出厂设置是否可以清除手机所有数据 for循环和while的区别? 华为手机恢复出厂设置会删除数据吗? 苹果手机刷机和回复出厂设置删东西的干净程度一样么 手机恢复出厂设置是否删除所有数据? 恢复出厂设置可以将手机里的数据彻底全部删除吗? 恢复出厂设置能把手机清理干净吗 恢复出厂设置会不会删除手机所有数据? 计算电容器两个极板所带的电荷量的总和是2Q吗 电容器的带电量怎么算 电感和电容的储能计算公式 电场中电容器所带的电荷量计算方式 电容的计算公式是什么··· 计算电荷量的公式 电容的计算公式 电容串并联的电容量计算公式和串并联电压计算公式? 电容计算公式中的单位是什么 电容器的能量公式是什么? 求电容容量计算公式 华为手机恢复出厂设置能彻底清除垃圾吗? while循环和for循环的区别 华为手机恢复出厂设置不能彻底删除数据吗 “while循环”和“for循环”有什么区别? 三傻大闹宝莱坞,“一切都好”原话? C语言中while与for语句有什么区别? 三傻大闹宝莱坞常用的那句英文啥意识 while循环和for循环的异同 ping命令的用法是什么?它的作用是什么? 请问下午3点半是什么时辰?生肖属于什么? for和while的区别 《三傻大闹宝莱坞》“一切顺利”用英语咋说? ping命令怎么用 下午三点半出生是什么时辰 c++里for循环和while循环的区别? 《三傻大闹宝莱坞》中所有有哲理的励志话 CMD命令中PING的使用 下午3点半是什么时辰 C语言中for循环和while循环的最主要区别是什么 《三傻大闹宝莱坞》的主题曲叫什么?还有中文的歌...