Do-While循环条件不满足后是否停止校验?C++ While循环逻辑咨询
关于C++中Do-While和While循环的疑问解答
嘿,刚接触C++循环章节是吧?我来给你把这两个问题讲明白~
1. Do-While循环在条件不再满足后是否会停止校验?
Do-While循环的逻辑是先执行一次循环体,再检查条件。当条件不再满足时,循环会直接终止,之后完全不会再去校验这个条件了。
举个直观的例子:
int i = 6; do { cout << "Hi" << endl; i++; } while (i <=5);
这段代码里,i一开始就是6,不符合i<=5的条件,但因为Do-While是先执行循环体,所以会输出一次"Hi",然后检查条件,发现不成立,循环立刻终止,之后再也不会去判断i<=5这个条件了。
2. 你的While循环代码相关疑问
先看你贴的这段代码:
#include "stdafx.h" #include <iostream> using namespace std; int main() { int i = 0; while (i <= 5) { cout << "Hello" << endl; i = i + 1; } return 0; }
第一个小问题:当i超过5后,While还会继续校验条件吗?
当i自增到6的时候,下一次进入循环前会检查i<=5这个条件,此时条件不成立,循环直接终止。终止之后,程序就会执行循环后面的代码(这里就是return 0;),再也不会去校验这个While的条件了。
第二个小问题:后续修改i为符合条件的值,循环会重新执行吗?
不会自动重新执行哦。While循环一旦因为条件不成立而终止,就彻底结束了,不会自己重启。如果想让循环再次运行,你得手动触发——比如把循环逻辑封装成函数,或者再写一遍循环语句。
比如这样修改就能实现你想要的效果:
#include "stdafx.h" #include <iostream> using namespace std; int main() { int i = 0; // 第一次执行循环 while (i <= 5) { cout << "Hello" << endl; i = i + 1; } // 修改i的值为符合条件的数值 i = 3; // 手动启动第二次循环 while (i <= 5) { cout << "Hello again" << endl; i = i + 1; } return 0; }
这段代码里,第一次循环结束后修改i为3,然后第二个While循环会再次执行,但原来的第一个While循环不会自动复活哦。
内容的提问来源于stack exchange,提问作者Anghi22
相关产品推荐
相关产品推荐

