先向大家介绍一下分支和循环有哪些。
分支语句 if 、switch ;
循环语句 while 、 for 、do while ;
一、分支语句
1、if 语句的语法结构是怎么样的?
if(表达式)
语句;
if(表达式)
语句1;
else
语句2;
//多分支
if(表达式1)
语句1;
else if (表达式2)
语句2;
else
语句3;
//执行多条语句时
if(表达式1)
{
语句1;
语句2;
.... ;
.... ;
.... ;
}
else if (表达式2)
{
语句1;
语句2;
.... ;
.... ;
.... ;
}
else
{
语句1;
语句2;
.... ;
.... ;
.... ;
}
如果表达式的结果为真,则语句1执行,否则表达式2执行。
什么是假,什么是真? 0表示假,非0表示真。虽然一条语句可以省略{ } 但是不应该省略。
2、switch 语句的语法结构是怎么样的?
switch 语句也是一种分支语句。常常用于多分支的情况。
switch(整型表达式)
{
case 整形常量表达式:
语句项;
}
switch 语句中,我们没法直接现实分支,搭配break 使用才能实现真正的分支。
//break 语句的实际效果是把语句列表划分为不同的部分
#include < stdio.h >
int main()
{
int day = 0;
switch(day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
//如果表达的值域所有的case标签的值都不匹配怎么办?此时是使用default。
default:
break;
}
return 0;
}
当条件满足的情况下,分支语句后的语句执行,否则不执行。但是这个语句只会执行一次。但是当我们需要多次调用语句时。此时使用循环语句。
二、循环语句
1、while 语法
while(表达式)
循环语句;
举例子:打印1-10的数字
#include < stdio.h>
int main()
{
int i = 1;
while(i <= 10)
{
printf("%d ", i);
i = i + 1;
}
return 0;
}
其实在循环中只要遇到 break , 就停止后期的所有的循环,直接终止循环。 所以 while 中的 break 是用于永久终止循环的。
continue 是用于终止本次循环的,也就是本次循环中 continue 后边的代码不会再执行,而是直接调整到 while 语句的判断部分。进行下一次循环的人口判断。
2、for 语法
for ( 表达式1; 表达式2; 表达式3)
循环语句;
表达式1为初始化部分,用于初始化循环变量的。表达式2为条件判断部分,用于判断循环时候终止。表达式3为调整部分,用于循环条件的调整。
例子:打印 1 - 10的数字
#include < stdio.h>
int main()
{
int i = 0;
for(i = 1; i < 10; i++)
{
printf("%d ", i);
}
return 0;
}
break 、 continue 也可以同样使用。
C++ 11提供了一个特殊版本的 for 循环,在很多情况下,它都可以简化数组的处理,这就是基于范围的 for 循环。在使用基于范围的 for 循环处理数组时,该循环可以自动为数组中的每个元素迭代一次。
for (dataType rangeVariable : array)
statement;
现在来仔细看一看该格式的各个部分:
dataType:是范围变量的数据类型。它必须与数组元素的数据类型一样,或者是数组元素可以自动转换过来的类型。
rangeVariable:是范围变量的名称。该变量将在循环迭代期间接收不同数组元素的值。在第一次循环迭代期间,它接收的是第一个元素的值;在第二次循环迭代期间,它接收的是第二个元素的值;以此类推。
array:是要让该循环进行处理的数组的名称。该循环将对数组中的每个元素迭代一次。
statement:是在每次循环迭代期间要执行的语句。要在循环中执行更多的语句,则可以使用一组大括号来包围多个语句。
//通过范围for打印数组中的值
int numbers[] = {3, 6, 9};
for(int val : numbers)
{
cout << "The next value is ";
cout << val << endl;
}
3、do while 语法
do
循环语句;
while(表达式);
循环至少执行一次,使用的场景有限,所以不是经常使用。
例子:打印 1 - 10
# include < stdio.h >
int main()
{
int i = 10;
do
{
printf("%d\n", i);
}while(i < 10);
return 0;
}
goto 语句 可以跳出多层循环。不介意使用。