C/C++支持的最基本三种程序运行结构:顺序结构,选择结构,循环结构。
一、选择结构作用:依据条件是否满足,有选择的执行相应的功能
1、if语句
作用:执行满足条件的语句
if语句的三种形式
(1)单行格式if语句
语法:if(条件为真){执行语句}
(2)多行格式if语句
语法:if(条件为真){执行语句}else{执行条件为假的语句}
(3)多条件的if语句
语法:if(条件1为真){执行语句}else if{执行条件2的语句}…else{执行都不满足条件为假的语句}
if语句的例子:
#includeusing namespace std; int main() { //三只小猪ABC,分别输入三只小猪的体重,并判断哪只小猪最重 float a = 0; float b = 0; float c = 0; cout << "请输入要小猪A的体重:" << endl; cin >> a; cout << "A小猪的体重为:" << a << endl; cout << "请输入要小猪B的体重:" << endl; cin >> b; cout << "B小猪的体重为:" << b<< endl; cout << "请输入要小猪C的体重:" << endl; cin >> c; cout << "C小猪的体重为:" << c << endl; if (a > b) { if(a>c) cout << "小猪A最重:" << endl; else cout << "小猪C最重:" << endl; } else { if(b>c) cout << "小猪B最重:" << endl; else cout << "小猪C最重:" << endl; } system("pause"); return 0; }
2、嵌套if语句
在If语句中,可以嵌套使用if语句
举例:
#includeusing namespace std; int main() { //三只小猪ABC,分别输入三只小猪的体重,并判断哪只小猪最重 float a = 0; float b = 0; float c = 0; cout << "请输入要小猪A的体重:" << endl; cin >> a; cout << "A小猪的体重为:" << a << endl; cout << "请输入要小猪B的体重:" << endl; cin >> b; cout << "B小猪的体重为:" << b<< endl; cout << "请输入要小猪C的体重:" << endl; cin >> c; cout << "C小猪的体重为:" << c << endl; if (a > b) { if(a>c) cout << "小猪A最重:" << endl; else cout << "小猪C最重:" << endl; } else { if(b>c) cout << "小猪B最重:" << endl; else cout << "小猪C最重:" << endl; } system("pause"); return 0; }
3、三目运算符
作用:通过三目运算符实现简单的判断
语法:表达式1? 表达式2:表达式3
解释:如果表达式1为真,执行表达式2,返回结果2。否则执行表达式3,并返回结果3。
4、switch语句
作用:执行多条分支语句
语法:switch(表达式)
{
case 结果1:执行语句;break
case 结果2:执行语句;break
…
default: 执行语句;break
}
注意:
1、switch 在判断时 只能是整型或字符型,不可以是区间
2、结构清晰 执行效率高
3、不写break 程序会一直向下执行
二、循环结构
作用:依据条件是否满足,循环多次执行某段代码
1、while循环语句
作用:满足循环条件,执行循环语句
语法:while(循环条件){循环语句}
解释:只要循环条件为真,就执行循环语句
举例:
#include#include //包含系统时间头文件 using namespace std; int main() { //随机生成一个1到100之间的数字,玩家进行猜测,如果猜错,提示玩家数字过大或过小 //猜对,玩家胜利,且退出游戏 //添加随机数种子, 利用当前系统的时间生成随机数,防止每次随机数都一样 srand((unsigned int)time(NULL)); //系统生成随机数 int num = rand() % 101; // %表示生成的数子区间,生成0~100的随机数 //玩家进行猜测 int a = 0;//玩家输入的数字 cout << "玩家请输入数字:" << endl; int i = 0; while (i<5) { cin >> a; if (a > num) { cout << "猜错,过大了" << endl; } else if (a < num) { cout << "猜错,过小了" << endl; } else { cout << "恭喜猜对了" << endl; break;//退出当前循环 } i++; } cout << "机会用完!下次再来" << endl; system("pause"); return 0; }
2、do…while循环语句
作用:满足循环条件,执行循环语句
语法:do{循环语句}while{循环条件};
与while区别:会先执行一次循环语句,再判断循环条件
举例:
#include#include //包含系统时间头文件 using namespace std; int main() { int num = 100; do { int a = 0; int b = 0; int c = 0; a = num % 10;//个位 b = (num / 10) % 10;//十位 c = num / 100; //百位 if ((a *a*a + b * b*b + c *c*c ) == num)//判断 { cout << num << endl; } num++; } while (num < 1000); //水仙花数 个位(对数字取余10) 十位(除以10在取余10) 百位(除以100) system("pause"); return 0; }
3、for循环语句
作用:满足循环条件,指行循环语句
语法:for(起始表达式;条件表达式;末尾循环体){循环语句;}
解释:起始:变量的初始 末尾:循环的末尾循环
举例:
//敲桌子 从1-100的数字, 如果数字个位含7或数字10位含7或是7的倍数 我们打印敲桌子 //剩余数字直接打印输出 #include#include //包含系统时间头文件 using namespace std; int main() { for (int num = 1; num < 101; num++) { int a = 0;//数字的个位 int b = 0;//数字的十位 a = num % 10; b = num / 10; if ((a == 7) || (b == 7) || (num % 7 == 0))//数字中找到特殊的数字 { cout << "敲桌子" << endl; } else cout << num << endl; } //1、先输出1-100的数字 2、在这数字中找到特殊的数字,改为敲桌子 system("pause"); return 0; }
4、嵌套循环
作用:在循环体中再嵌套一层循环,解决一些实际的问题
举例:
#includeusing namespace std; int main() { //实现九九乘法表 for (int i = 1; i < 10; i++) { //cout << i << endl; //打印行数 for (int j = 1; j <=i; j++) { int res = 0; res = i*j; cout < 三、跳转语句 1、break语句
作用:用于跳出选择结构或循环结构
使用的时机:
1、出现在switch中,终止case并跳出switch
2、出现在循环语句中,跳出当前的循环语句
3、出现在嵌套循环中,跳出最近的内层循环
2、continue语句
在循环语句中,循环执行到continue这里,就不再执后面代码,而是执行到下一次循环
3、go…to语句
作用:无条件跳转语句
语法:goto 标记;
解释:如果标记名称存在,执行goto语句时,会跳转到标记的位置



