C/C++支持最基本的三种程序运行结构:
顺序结构、选择结构、循环结构
顺序结构:程序按顺序执行,不发生跳转
选择结构:依据条件是否满足,有选择的执行相应功能
循环结构:依据条件是否满足,循环多次执行某段代码
1.选择结构
if语句
作用:执行满足条件的语句
if语句的三种形式
。单行格式if语句
。多行格式if语句
。多条件的if语句
嵌套if语句:
在if语句中,可以使用嵌套if语句,以达到更精准的条件判断
三目运算符
作用:通过三目运算符实现简单的判断
语法:表达式1?表达式2:表达式3
解释:如果表达式1成立则执行表达式2并返回结果;否则执行表达式3并返回结果
示例
#include <iostream>
#include <string>
using namespace std;
int main()
{
int a=6;
int b=3;
int c;
c=(a>b?a:b);
cout<< "c="<<c <<endl;//返回c=6
return 0;
}
在C++中三目运算符返回的是变量,可以继续赋值
switch语句
作用:执行多条件分支语句
示例:
#include <iostream>
using namespace std;
int main()
{
cout<<"请给电影打分"<<endl;
int score;
cin>>score;
cout<<"您打的分数为"<<score<<endl;
switch(score)
{
case 10:cout<<"您认为是经典电影"<<endl;
break;
case 9:cout<<"您认为是良好电影"<<endl;
break;
case 8:cout<<"您认为是一般电影"<<endl;
break;
case 7:cout<<"您认为是一般电影"<<endl;
break;
case 6:cout<<"您认为是一般电影"<<endl;
break;
default:cout<<"您认为是垃圾电影"<<endl;
break;
}
return 0;
}
if 和 switch区别?
switch 缺点,判断时候只能是整型或者字符型,不可以是一个区间
switch 优点,结构清晰,执行效率高
注意1:switch语句中表达式类型只能是整型或者字符型
注意2:case里如果没有break,那么程序会一直向下执行
总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间
2.循环结构
while语句
作用:满足循环条件,执行循环语句
语法:while(循环条件){循环语句}
解释:只要循环条件的结果为真,就执行循环语句
注意:在执行循环语句的时候,程序必须提供跳出循环的出口,否则会死循环
do…while循环语句
作用:满足循环条件,执行循环语句
语法:do{循环语句} while(循环条件);
注意:与while的区别在于do…while会先执行一次循环语句再判断循环条件
for循环语句:
作用:满足循环条件,执行循环语句
语法: for(起始表达式;条件表达式;末尾循环体){循环语句;}
示例:
#include <iostream>
using namespace std;
int main()
{
int a;
for(a=0;a<5;a++)
{
cout<<a<<endl;
}
return 0;
}
注意:for循环中的表达式,要用分号进行分隔
总结:while,do…while,for都是开发中常用的循环语句,for循环结构比较清晰,比较常用
3.跳转语句
break语句:
作用用于跳出选择结构或者循环结构
break使用的时机:
出现在switch条件语句中,作用是终止case并跳出switch
出现在循环语句中,作用是跳出当前的循环语句
出现在嵌套循环中,跳出最近的内层循环语句
continue语句:
作用:在循环语句中跳过本次循环中余下尚未执行的语句,继续执行下一次循环
示例:
#include <iostream>
using namespace std;
int main()
{
int a;
for(a=0;a<10;a++)
{
if(a%3==0)
{
continue;
}
cout<<a<<endl;
}
return 0;
}
continue并不会使整个循环终止,而break会跳出循环
goto语句:
作用:可以无条件跳转语句
语法:goto 标记;
解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置
示例:
#include <iostream>
using namespace std;
int main()
{
cout<<"1"<<endl;
cout<<"2"<<endl;
goto xia;
cout<<"3"<<endl;
cout<<"4"<<endl;
xia:
cout<<"5"<<endl;
cout<<"6"<<endl;
return 0;
}
注:在程序中不要随便使用goto语句,以免造成程序流程混乱
(一个好的程序尽量不要使用goto语句)