顺序结构
程序自上而下逐语句运行
int main()
{
int a = 10;
cout << a << endl;
int b = 20;
cout << b << endl;
}
选择结构
1、if()判断
可以把if理解为如果
else理解为否则
else if就是否则如果
int main()
{
int a = 10;
if (a <= 10) {//小括号内为表达式1
//代码块1
cout << "a<=10" << endl;
}
else if (a < 100) {//小括号内为表达式2
//代码块2
cout << "a>=10" << endl;
}else {
//代码块3
cout << "a>100" << endl;
}
}
代码解释:
如果表达式1的判断结果为真,则运行代码块1内语句。
如果表达式1判断结果为假,则跳过代码块1。
如果还需要再次判断,可以用else if多次进行判断,如下表达式2,结果为真则执行代码块2,结果为假则不执行。
(如不需要判断,可以不用else if)
最后如果上面的表达式(这里是表达式1和2)判断结果都为假,则会执行else也就是代码块3
2、switch case选择
根据表达式选择要执行的程序
int main()
{
int a = 1;
switch (a) {
//这里是选择表达式,根据表达式结果,找到对应case,执行该case中代码
case 1:
cout << "1" << endl;
break;
case 2:
cout << "2" << endl;
break;
default:
cout << "3" << endl;
break;
}
}
循环结构
1、while循环
while循环是根据表达式判断是否执行代码,如果为真则执行 ,为假则不执行。要注意的,如果判断结果为真,则执行完代码后,会再次进入判断,知道判断结果为假,则结束该循环。
注意如果判断条件始终为真会进入死循环,也就是程序会无限进行循环。
int main()
{
int a = 1;
while (a) {
a--;
}
}
2、for循环
for()循环也是根根据条件判断是否执行代码,表达式格式为:
表达式1:通常定义一个变量,如果有定义过这个变量可以省略
表达式2:判断条件,返回结果决定是否执行代码,不可省略
表达式3:也可以写到到代码块中
int main()
{
for (int i = 0; i < 10; i++)
{
cout << i << endl;
}
}
do while()循环
do while和while的区别就是,do while是先执行一次代码块内代码后进行判断。
int main()
{
int a = 10;
do {
a--;
cout << "ok" << endl;
} while (a);
}
相关的关键字
continue
结束本次循环进到下一次循环
continue是结束一次循环,结束后还会继续进入下次判断,所以下代码会将if判断成功的情况跳过,也就是双数情况下跳过档次循环,不进行打印,输出结果为单数
int main()
{
for (int i = 1; i < 100;i++) {
if (i % 2 == 0)
{
continue;
}
cout << i << endl;
}
}
break
跳出一层循环
把上面代码中continue改为break,结果就会变成只输出1
因为1取模2结果为1,1和0进行相等比较结果为假,则会输出i,i此时为1.
下一次进入循环i变成2,2进入if和2取模运算结果为0,0和0相等此时表达式结果为真,运行break语句,break会跳出当前循环,当前循环就是for,跳出for循环后程序结束。所以只输出1
int main()
{
for (int i = 1; i < 100;i++) {
if (i % 2 == 0)
{
break;
}
cout << i << endl;
}
}
goto
直通车。定义一个标识符加冒号
就可以使用goto直达该代码所在位置,并且让程序从此处开始执行。
不建议多次使用goto容易出现混乱,下程序中结果会出现死循环,因为第一次if判断结果为真,进入代码块中goto语句,goto会找到定义的代码处,并从此处开始继续执行代码。所以每一次判断都为真,结果就是死循环
int main()
{
int a = 0;
// cout << 0 % 2 << endl;
ok:
for (int i = 1; i < 100;i++) {
if ((i % 2) == 0)
{
goto ok;
}
cout << i << endl;
}
}