14+15循环 (For and While) & 控制流
1.FOR
形式(1)
for (int i = 0; i < 5; i++) 三部分,用 ;分开
{
log("hello world!"); //循环体
}
- 第一部分声明变量(临时变量) (I iterator 迭代器,传统)
- 第二部分条件,满足时候一直执行FOR里面的代码
- 第三部分是下一次循环前会执行的代码
形式(2),与形式(1)内容相同
{
int i = 0;
for (; i <5; ) //i+= i=i+1
{
log("hello world!");
i++;
}
std::cin.get();
}
形式(3),与形式(1)内容相同
{
int i = 0;
bool condition = true;
for (; condition; ) //i+= i=i+1
{
log("hello world!");
i++;
if (!(i < 5))
condition = false;
}
std::cin.get();
}
2.While
与FOR类似,但是没有第一部分的声明和第三部分的代码,只有第二部分的代码。
先写关键字while,再加上条件while (i<5)
- 使用while和For,主要取决于是否需要新变量。其作用是一致的,具体使用看个人编程风格。
- 可能和使用的情形也有关联。比如遍历用for,有bool值判断真假可用while(主要取决于是否需要新变量)
- Do while 不太有用,不太常用。与while区别是至少会执行一次
do //keyword
{
log("hello world!"); //body
}
while (i < 5);//condition,条件
3.控制流Continue,break,return
IF语句,条件语句,循环,控制流语句是可以用来修改程序运行情况的唯一工具;
控制流通常与循环语句相关,可以更好的控制循环
- Continue 只能用在函数内部 意思:如果还能进行迭代的话,直接进行下一次迭代。否则,结束循环
- continue 语句的作用是跳过循环体中剩余的语句而强制进入下一次循环。continue语句只用在 while、for 循环中,常与 if 条件语句一起使用,判断条件是否成立。
- 运行了continue就进入下一次循环
- Break 主要用在循环里面,也可以出现在switch语句中,功能为直接跳出循环。
- Return 完全退出函数
3.1 CONTINUE
int main() {
for (int i = 0; i < 5; i++) //i+= i=i+1
{
log("hello world!");
continue; //此处无法改变循环的进行
}
log("======================");
std::cin.get();
}
int main()
{
for (int i = 0; i < 5; i++) //i+= i=i+1
{
if (i % 2 == 0)continue; //
log("hello world!");
std::cout << i << std::endl;
}
log("======================");
std::cin.get();
}
//运行结果 只有1 和3的时候执行循环体。其他进入下一次循环,及结束
hello world!
1
hello world!
3
可以通过调试debug来看看程序是怎么走的,确定某一个语句到底是怎么样执行的。
3.2 Break
int main()
{
for (int i = 0; i < 5; i++) //i+= i=i+1
{
if ((i+1) %2==0)
break;
log("hello world!");
std::cout << i << std::endl;
}
log("======================");
std::cin.get();
}
//运行结果
hello world!
0
//0的时候执行一次,1的时候if成立,直接中断循环体。直接跳出循环
3.3 Return : 需要整数作为返回的函数
int main()
{
for (int i = 0; i < 5; i++) //i+= i=i+1
{
if ((i+1) %2==0)
return 0; //
log("hello world!");
std::cout << i << std::endl;
}
log("======================");
std::cin.get();
}
//0的时候执行一次,1的时候if成立,直接中断循环体。直接关闭函数/完全退出函数