1.选择结构语句
1.1单条件语句
格式: if(表达式) 语句
if条件后不要加“;”
列子:
#include<iostream>
using namespace std;
int main()
{
//选择结构 单行if语句
//用户输入分数,如果分数大于600,视为考上一本大学,在屏幕上输出
//1.用户输入分数 2.打印用户输入的分数 3.判断用户是否大于600,如果大于,那么输出
int score = 0;
cout << "请输入一个分数: " << endl;
cin >> score;
cout << "你输入的分数为: " << endl;
if (score > 600)//if语句后面不要加;
{
cout << "恭喜你考上一本大学" << endl;
}
return 0;
1.2 双分支if...else语句
格式:if(<表达式>) <语句1>
else <语句2>
执行该语句时,先计算表达式的值,若表达式为非0,则执行语句1,否则执行语句2
列子:
#include <iostream>
using namespace std;
int main()
{
int score = 0;
cout << "请输入一个考试分数:" << endl;
cin >> score;
cout << "你输入的分数为: " <<score<< endl;
if (score > 600)
{
cout << "恭喜考入一本学校" << endl;
}else
{
cout << "没考上一本!" << endl;
}
return 0;
}
1.3嵌套的条件语句
格式:if(表达式1) 语句1
else if(表达式2) 语句2
else if(表达式3) 语句
.......
else if(表达式m) 语句m
配对原则:else 与其前边最近的未配对的if配对
#include<iostream>
using namespace std;
int main()
{
//score>600,考上一本;score>500,考上二本;score>400,考上三本;其余未考上
//在一本中,score>700,考入北大;score>650,考入清华;score>600,考入人大
int score = 0;
cout << "请输入考试分数: " << endl;
cin >> score;
cout << "您输入的分数为: " <<score<< endl;
if (score > 600)
{ cout << "恭喜考上一本大学" << endl;
if (score > 700) { cout << "恭喜考入北京大学" << endl; }
else if (score > 650) { cout << "恭喜考入清华大学" << endl; }
else { cout << "恭喜考入人民大学" << endl; }
}
else if (score > 500)
{ cout << "恭喜考入二本大学" << endl; }
else if (score > 400)
{ cout << "恭喜考入三本大学" << endl; }
else
{ cout << "未考上本科" << endl; }
return 0;
}
1.4switch语句
格式:switch(表达式)
{ case 常量表达式1:语句序列1;break;
case 常量表达式2:语句序列;break;
..........
case 常量表达式n:语句序列n;break;
default:语句序列n+1
}
switch语句执行顺序:1.先计算表达式,得到一个常量结果
2.在从上到下寻找于此结果相匹配的常量表达式所在的case语句
3.如果匹配则以此作为入口,开始依次执行入口处后面的各语句,直 到遇到“}”,才结束switch语句
4.如果没有找到与此结果相匹配的常量表达式,则执行default处语 句n+1
注意:default语句是默认的
switch后的括号表达式只能是整形,字符型,枚举型
case语句起标号作用,标号不能重名
可以使多个case语句共用一组
#include <iostream>
using namespace std;
int main()
{
float a; int b; char grade;
cin >> a;
b = (int)a / 10;
switch (b)
{
case 10:
case 9:
case 8:grade = '1A'; break;
case 7:
case 6:grade = '2B'; break;
default:grade = '3C'; break;
}
cout << grade << endl;
return 0;
}
2.循环结构语句
2.1 while语句
格式: while(<表达式>) <循环体语句>
执行过程:先计算表达式的值,若逻辑为真,则执行循环语句,再计算表达式的值并重复以 上的判断和执行过程,直到表达式的值为0时,结束循环的执行
列子 :猜数字游戏
#include<iostream>
using namespace std;
//time 系统时间头文件包含
#include<ctime>
int main()
{
//添加随机数种子,作为利用当前系统时间生成随机数,防止每次随机数都一样
srand((unsigned int)time(NULL));
int a =rand() % 100 + 1;//随机生成1~100的一个数
while (1)
{
int b = 0;
cin >> b;//玩家猜测的数字
if (b > a)
{
cout << "猜测过大" << endl;
}
else if (b < a)
{
cout << "猜测过小" << endl;
}
else
{
cout << "恭喜猜对了" << endl; break;
}
}
return 0;
}
2.2 do.....while语句
格式:do
< 循环体语句>
while(<表达式>)
执行过程:1.执行循环体语句
2.计算表达式的值
3.如果表达式的值为非0,重复(1)(2)步骤;否则结束循环语句的执行
#include<iostream>
using namespace std;
int main()
{
int num = 0;
do
{
cout << num << endl;
num++;
} while (num < 10);
return 0;
}
2.3for语句
格式:for(<表达式1> ;<表达式2>;<表达式3>)
<循环体语句>
执行过程:1.计算表达式1的值
2.计算表达式2的值
3.若表达式2的值为非0,执行循环语句;否则结束for循环
4.计算表达式3的值
5.重复2~5步骤
#include<iostream>
using namespace std;
int main()
{
for (int a = 1; a <= 100; a++)
{
if (a % 7 == 0 || a % 10 == 7 || a / 10 == 7)
{
cout << "敲桌子" << endl;
}
else
{
cout << a << endl;
}
}
return 0;
}
三种循环语句的比较
while循环: do....while循环: for循环:
<循环变量>=<初值>; <循环变量>=<初值>; <循环变量>=<初值>;
while(条件) do for(<循环变量>=<初值>;<条件>;
{<循环体变量> {<循环体变量> <改变循环变量>)
<改变循环变量> <改变循环体变量> {<循环体语句>}
} }
(1)while和for语句在每次执行循环体语句之前判断循环条件,然后决定是否执行循环体语句;
do....while语句在每次执行循环体语句之后判断循环条件,然后决定是否执行循环体语句
(2)如果一开始循环条件不成立,while和for语句不执行循环体语句;
do.....while语句至少执行一次循环体语句
2.4嵌套循环
外层执行一次,内层执行一次
列子:九九乘法表
#include<iostream>
using namespace std;
int main()
{
//列数*行数=计算结果、列数<=当前的行数
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= i; j++)
{
cout << j<<" * "<<i<< "= "<<j*i<<" ";
}
cout << endl;
}
return 0;
3.跳转语句
3.1break(跳出语句)
格式: break;
break语句只能用在switch语句和循环语句中
#include<iostream>
using namespace std;
int main()
{
//break使用时机
//1.出现在switch中
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;
}
//2.循环语句
for (int a = 0; a < 10; a++)
{//如果i=5,退出循环,不再打印
if (a == 5)
{
break;
}
cout << a << endl;
}
//3.嵌套语句
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (j == 5)
{
break;
}
cout << "* ";
}cout << endl;
}
return 0;
}
3.2continue语句(回到初始,及结束本次循环,重新下一次)
格式:continue;
continue语句只能用在循环中
#include<iostream>
using namespace std;
int main()
{
for (int i = 0; i <= 100; i++)
{
if (i % 2 == 0)
{
continue;//可以筛选条件,执行到此就不再向下执行,执行下一次循环
}
cout << i << endl;
}
return 0;
break语句和continue语句的区别:
1.break语句时跳出本次循环,continue语句时终止本次循环
2 .break语句可以用在循环和switch语句中,continue语句只用在 循环语句中