4 数据结构
4.1 选择结构
顺序结构:程序按照顺序执行,不发生跳转
选择结构:依据条件是否满足,有选择地执行相应功能
循环结构:依据条件是否满足,循环多次执行某段代码
4.1.1 if语句
作用:执行满足条件的语句
if语句的三种形式:
单行格式if语句
多行格式if语句
多条件的if语句
1.单行格式if语句:if(条件){条件满足执行的语句}
开始-----判断条件---{true=执行语句}-----结束
{false--------------}-----结束
示例:
int main (){ //选择结构-单行if语句 //输入一个分数,如果分数大于600,视为考上一本大学,并在屏幕上打印 int score = 0; cout <<"请输入一个分数:" << endl; cin >>score; cout <<"您输入的分数为:"<<endl; //if 语句 //注意事项,在if判断语句后面,不要加分号 if(score >600 ) { cout <<"我考上一本大学了!!!"<<endl; } system("pause "); return 0; }
2.多行格式if语句:if(条件){条件满足执行的语句}
else{条件不满足的语句}
开始------判断条件---{true----执行语句1}---结束
{false----执行语句2}----结束
示例:
int main(){ int score = 0; cout <<"请输入考试分数:"<<endl; cin >>score ; if (score >600 ) { cout <<"我考上了一本大学"<<endl; } else { cout <<"我没有考上一本大学"<<endl; } system("pause"); return 0; }
3.多条件的if语句:if(条件){满足执行的语句}
else if(条件2){条件2满足执行的语句}
。。。
else{都不满足执行的语句}
示例:
//选择语句 多条件if语句 //输入一个考试分数,如果大于600分,视为考上一本大学,在屏幕输出 //大于500,视为考上二本大学,屏幕输出 //大于400,视为考上三本大学,屏幕输出 //小于等于400分,视为为考上本科,屏幕上输出 //1.用户输入分数 int score = 0; cout <<"请输入一个分数:"<<endl; cin >>score ; //2.提示用户输入的分数 cout <<"您输入的分数为:"<<score <<endl; //3.判断 //如果大于600,考上一本 if (score >600) { cout <<"恭喜您考上了一本大学"<<endl; } //如果大于500,考上二本 else if(score>500)//第二个条件 { cout <<"恭喜进考上了二本大学"<<endl; } //如果大于400,考上三本 else if (score >400 )//第三个条件 { cout <<"恭喜进考上了三本大学"<<endl; } //前三个都没满足,未考上本科 else { cout <<"未考上本科大学,请再接再厉"<<endl; }
嵌套if语句:在语句中,可以嵌套使用if语句,达到更精准的条件判断
案例要求:
提示用户输入一个考试分数,根据分数做如下要求
分数如果大于600 分视为考上一本,大于500分考上二本,大于400分考上三本,其余视为未考上本科;
在一本分数中,如果大于700分,考入北大,考入清华,大于600考入人大
if(score >600) cout <<"考上一本"<<endl; if( score >700) { cout <<"您能考入北京大学"<<endl; } else if (score > 650) { cout <<"您能考入清华大学"<<endl; } else { cout <<"您能考入人民大学"<<endl; }
4.1.2 三目运算符
作用:通过三目运算符实现简单的判断
语法:表达式1?表达式2:表达式3
解释:
如果表达式1的值为真,执行表达式2,并返回表达式2的结果
如果表达式1的值为假,执行表达式3,并返回表达式3的结果
示例:
//创建三个变量 a b c //将a和b作比较,将变量大的值赋值给变量c int a = 10; int b = 20; int c = 0; c = (a>b?a:b);//打括号表示先运算括号里的算式 cout <<"c ="<<c<<endl; //在c++中三目运算符返回的是变量,可以继续赋值 (a < b? a : b) = 100; cout <<"a = "<<a<<endl; cout <<"b = "<<b<<endl;
4.1.3 switch语句
作用:满足循环条件,执行循环语句
语法:while(循环条件){循环语句}
解释:只要循环条件的结果为真,就执行循环语句
执行多条件分支语句
示例:(语法)
switch(表达式) { case 结果1:执行语句;break ; case 结果2:执行语句;break; 。。。 default:执行语句;break; }
int main(){ //请给电影评分 //10~9 经典 //8~7 非常好 //6~5 一般 //5分以下 烂片 int score = 0; cout <<"请给电影打分"<<endl; cin >>score : switch(score ) { case 10; case 9; cout <<"经典"<<endl; break; } case 8; cout <<"非常好"<<endl; break; case 7; case 6 cout <<"一般"<<endl; break; default: cout <<"烂片"<<endl; break; }
if和switch区别?
switch 缺点,判断时候只能是整型或字符型,不可以是一个区间
switch优点,结构清晰,执行效率高
注意1:switch语句中表达式类型只能整型或字符型
注意2:case里如果没有break,那么程序会一直向下执行
总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间
4.2 循环语句
4.2.1 while循环语句
作用:满足循环条件,执行循环语句
语法:while(循环条件){循环语句}
解释:只要循环条件的结果为真,就执行循环语句
示例:
int main(){ int num = 0; while (num < 10) { cout <<"num = "<<num<<endl; num++; } system("pause"); return 0; }
注意:在执行循环语句时候,程序必须提供跳出循环的出口,否则出现死循环
4.2.2 do...while 循环语句
作用:满足循环条件,执行循环语句
语法:do{循环语句}while{循环条件};
注意:与while的区别在于do ...while 会先执行一次循环语句,在判断循环条件
//do...while 语句在频幕中输出0到9这十个数 int num = 0; do { cout <<num <<endl; num++; }while (num <10);
4.2.3 for循环语句
作用:满足循环条件,执行循环语句
语法:for(其晒表达式;条件表达式;末尾表达式) {循环语句;}
示例:
//for循环 从数字0 打印到 数字9 int i = 0; for (int i = 0;i < 10;i++) { if (i >= 10) { break; } cout <<i <<endl; i++; }
注意:for循环中的表达式,要用分号进行分隔
总结:while, do...while ,for 都是开发中常用的循环语句,for循环结构比较清晰,比较常用
4.2.4 嵌套循环
作用:在循环中在镶嵌一层循环,解决一些实际问题
例如:使用镶嵌循环实现星图
//外层循环执行一次,内层循环执行一周 for (int i = 0;i < 10; i++) { //内层循环 for (int j = 0;j<10; j++) { cout <<"*"; } cout <<endl; }
4.3 跳转语句
4.3.1 break语句
作用:用于跳出选择结构或者循环结构
break使用时机:
出现在switch条件语句中,作用是终止case并跳出switch
出现在循环语句中,作用是跳出当前循环语句
出现在嵌套语句中,跳出最近的内层循环语句
示例1:
int main(){ //1.在switch 语句中使用break cout <<"请选择您要挑战副本的难度:"<<endl; cout <<"1.普通"<<endl; cout <<"2.中等"<<endl; cout <<"3.困难"<<endl; int select = 0;//创建选择结果的变量 cin >>select;//等待用户输入 switch(select) { case 1: cout <<"您选择的是普通难度"<<endl; break; case 2: cout <<"您选择的是中等难度"<<endl; break; case 3: cout <<"您选择的是困难难度"<<endl; break; default: break; } }
4.3.2 continue语句
作用:在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环
示例:
int main(){ for (int i = 0;i <100;i++) { //如果是奇数输出,偶数不输出 if (i % 2 == 0)// 0 2 4 6 8 10 { continue; } cout <<i<<endl; } system("pause"); return 0; }
注意:continue并没有使整个循环终止,而break会跳出循环
4.3.3 goto语句
作用:可以无条件跳转语句
语法:goto 标记;
解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置
示例:
int main (){ cout <<"1"<<endl; goto FLAG;//一般用flAG cout <<"2"<<endl; cout <<"3"<<endl; cout <<"4"<<endl; FLAG; cout <<"5"<<endl; system("pause"); return 0; }
注意:在程序中不建议使用goto语句,以免造成程序流程混乱。