关于双重while嵌套的问题

关于双重while嵌套的问题,第1张

首先你要知道while(cin>>word)语句检测的是表达式返回的流cin,也即是检测流的状态。

因为你的嵌套while(cin>>word){}是以Ctrl+z结束的,此时cin无效,即以后的while(cin>>word){}条件都是不成立,所以不会执行。

如果想正确执行的话,加上cinclear();把流cin设置为有效就可以了

while(1)

{

while(cin>>word)

{

textpush_back(word);

}

cinclear();///设置流cin有效

for(size_t a(0);a<textsize();++a)

{

cout<<text[a]<<endl;

}

}

完全可以的。例如,以下的二重循环程序运行的结果:

#include<stdlibh>

voidmain(void)

{inti,j=5;for(i=0;i<3;i++,j=5)

{while(j--)printf("");printf("\n");}

system("pause");}

是你的输入乱了的问题,你在最外层while中有一个cin>>a; 此时你需要先输入一个a的值,按照你的结果显示,你输入的是1,此时a=1,stack[0]=1;然后进入第二个循环,cin>>ch1>>a>>ch2; 你输入了 + 2,此时ch1='+',a=2,但是还需要输入ch2,所以输入1+2后不输出结果,因为ch2还未进行输入,直到你输入0之后此时ch2=0;stack[1]=2。

然后进行输出cout<<ch1<<" "<<a<<" "<<ch2<<endl;也就是你结果中的+ 2 0;最后进行stack数组元素相加输出就是1+2,输出3。

循环语句,分两个部分。 一部分是循环控制语句。 一部分是循环体。 for 循环: 循环控制语句有三个表达式 第一个表达式, 只执行一次,在循环所有其他代码执行前执行。 第二个表达式,每次循环体执行前,先执行,并与比较0(false) 比较非0 执行循环, 是0不执行结束循环 第三个表达式,每次循环体执行后执行一次。 while 循环: 循环控制语句只有一个表达式 每次循环体执行前先执行,并把结果和0(false) 比较,非0执行循环,是0 不执行结束循环。 do while循环: 只有一个表达式 ,先执行一遍循环体,然后执行表达式,并把结果和0(false) 比较,非0 执行循环,是0 不执行结束循环。 嵌套循环的内存循环,只是循环体中的一个语句。 执行顺序是:和外层循环的其他语句一起,按照顺序执行。 for 循环:while 循环: 先执行条件表达式,如果结果非0,执行循环体。 do while 循环,先执行循环体,然后执行条件表达式,如果结果非0,继续执行循环体。

以上就是关于关于双重while嵌套的问题全部的内容,包括:关于双重while嵌套的问题、c语言里,for循环里能嵌套while循环吗、c++两个while循环嵌套问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10639601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存