C++学习(基础篇三)
程序控制流程
C/C++支持最基本的三种程序运行结构:
1.顺序结构
程序按顺序执行,不发生跳转
2.选择(分支)结构
依据条件是否满足,有选择的执行相应功能
3.循环结构
依据条件是否满足,循环多次执行某段代码
选择结构
switch语句
作用:执行多条件分支语句
语法:
switch(表达式)
{
case 结果1 : 执行语句 ;break ;
case 结果2 : 执行语句 ; break;
...
default : 执行语句 ; break ;
}
//输入一个百分制成绩,转换成"优"、"良"、"中"、"及格"、"不及格"的五级制输出。
#include<iostream>
using namespace std;
int main()
{
//输入分数
int socre;
cout << "请输入分数 = ";
cin >> socre;
if (socre < 0 || socre > 100)
{
cout << "输入的分数有错误" << endl;
exit(1);
}
else
{
switch (socre / 10)
{
case 10:
case 9:cout << "您的成绩是- 优" << endl; break;
case 8:cout << "您的成绩是- 良" << endl; break;
case 7:cout << "您的成绩是- 中" << endl; break;
case 6:cout << "您的成绩是- 及格" << endl; break;
default:cout << "您的成绩是- 不及格" << endl; break;
}
}
system("pause");
return 0;
}
if语句
作用:执行满足条件的语句。
if语句的三种形式:
1.单行格式if语句
注意: if条件后面不要加分号(否则将不会判断if里的条件)
语法:
if (条件)
{
条件满足执行的语句
}
2.多行格式if语句
语法:
if(条件)
{
条件满足执行的语句
}
else
{
条件不满足执行语句
}
3.多条件的if语句
语法:
if(条件1)
{
条件1满足执行的语句
}
****条件1成立时将不再进行后边的运行****
else if(条件2)
{
条件2满足执行的语句
}
.....
else
{
都不满足执行的语句
}
嵌套if语句
在if语句中,可以嵌套使用if语句,达到更精确的条件判断
#include <iostream>
using namespace std;
int main()
{
//选择结构--if语句
//例子--用户输入分数,如果分数大于700分,考上了重点大学,并恭喜,
// 大于710分
// 大于720分
// 如果分数大于600分,考上了一本大学,并恭喜,
// 如果分数大于400分,考上了二本大学,并恭喜,
// 小于等于400分,请您复读吧!!,
//用户输入分数
int score;
cout << "请输入您的高考成绩:" ;
cin >> score;
//判断score大于700 则输出大括号内的内容
if (score > 700)
{
cout << "********恭喜您考上了重点大学********" << endl;
if (score > 710 )
{
cout << "********您能考入北京大学********" << endl;
}
if (score > 720)
{
cout << "********您能考入清华大学********" << endl;
}
else
{
cout << "********您能考入985大学********" << endl;
}
}
//判断score大于600 则输出else if后的大括号内的内容
else if (score > 600)
{
cout << "********恭喜您考上了一本大学********" << endl;
}
//判断score大于400 则输出else if后的大括号内的内容
else if (score > 400)
{
cout << "********恭喜您考上了二本大学********" << endl;
}
//其他情况(score<=400) 则输出else后的大括号内的内容
else
{
cout << "********少壮不努力 老大徒伤悲 复读吧少年!!********" << endl;
}
system("pause");
return 0;
}
循环结构
while 循环语句
作用:满足循环条件,执行循环语句。
语法:
while(循环条件)
{
循环语句;
}
只要循环条件的结果为真,就执行循环语句。
//while案例练习 猜数字
//系统随机生成一个1-100之间的数字,玩家进行猜测,如果猜错提示玩家数字过大或过小,如果猜对恭喜玩家,并退出。
#include <iostream>
using namespace std;
//系统时间头文件
#include<ctime>
int main()
{
//添加随机种子,利用当前系统时间生成随机数,防止每次随机数都一样。
srand((unsigned int)time(NULL));
//随机生成一个1-100之间的数字
int num;
num = rand() % 100 + 1;
int guss = 0;
int cishu = 0;
while (cishu < 5)
{
cout << "输入猜测的数字 :" << endl;
cin >> guss;
if (guss > num)
{
cout << "您猜的数大了" << endl;
}
else if(guss < num)
{
cout << "您猜的数小了" << endl;
}
else
{
cout << "恭喜您,猜对啦!!" << endl;
break;//退出当前循环。
}
cishu++;
}
cout << endl<< "***************GAME OVER!!***************" << endl;
system("pause");
return 0;1
}
do…while循环语句
作用:满足循环条件,执行循环语句。
语法:
do
{
循环语句;
}while(循环条件);
注意:与while区别在于do…while会先执行一次循环语句,再判断循环条件。
//练习案例-- 三位数的水仙花数
#include <iostream>
using namespace std;
int main()
{
int num = 100;
do
{
int g = num % 10; //取各位
int s = num / 10 % 10; //取十位
int b = num / 100; //取百位
if (g*g*g + s * s*s + b * b*b == num)
cout << num << endl;
num++;
} while (num < 1000);
system("pause");
return 0;
}
for循环语句
作用:满足循环条件,执行循环语句。
语法:for(起始表达式;条件表达式;末尾表达式)
{
循环语句;
}
//案例练习 敲桌子
//输出1~100个数 如果个位数是7或者十位数是7或者是7的倍数输出敲桌子,否则输出原数值。
#include <iostream>
using namespace std;
int main()
{
//输入数字
int i;
for (i = 1; i <= 100; i++)
{
int g = i % 10; //取个位数
int s = i / 10; //取十位数
if (g == 7 || s == 7 || i % 7 == 0) //判断个位数是7或者十位数是7或者是7的倍数
{
cout << "敲桌子" << endl;
}
else
{
cout << i << endl;
}
}
system("pause");
return 0;
}
嵌套循环
作用:在循环中再嵌套一层循环,解决一些实际问题。
//嵌套案例--乘法口诀表
#include<iostream>
using namespace std;
int main()
{
for (int i = 1; i <= 9; i++) //输出9行数
{
for (int j = 1; j <= i; j++) //输出列 列数小于等于行数
{
cout << j << "*" << i << "=" << i * j<<" ";
}
cout << endl;
}
system("pause");
return 0;
}
//输出等腰三角形的 *
#include <iostream>
using namespace std;
int main()
{
for (int i = 1; i <= 5; i++) //输出5行
{
for (int j = 0; j < 5 - i; j++) //先输出空格
{
cout << " ";
}
for (int j = 0; j < 2 * i - 1; j++)
{
cout << "*";
}
cout << endl;
}
system("pause");
return 0;
}