目录
C/C++最支持的三种程序运行结构:顺序结构、选择结构、循环结构。
顺序结构:按照顺序执行,不发生跳转。
选择结构:是否满足条件,有选择的执行。
循环结构:根据是否满足条件,循环多次的执行某段代码。
1.1选择结构
1.1.1if语句
单行if语句
案例:用户输入分数,如果分数大于600则视为考上一本大学,并打印恭喜你考上了一本大学。
#include<iostream>
using namespace std;
int main()
{
int score = 0;
cout << "请输入你的分数:" << endl;
cin >> score;
if (score > 600)
{
cout << "恭喜你考上了一本大学" << endl;
}
system("pause");
return 0;
}
注意:if语句后面不要加;
多行if语句
也就是比单行if多了个else
案例:用户输入分数,如果分数大于600则视为考上一本大学,并打印恭喜你考上了一本大学。否则,打印很遗憾你未考上一本大学。
#include<iostream>
using namespace std;
int main()
{
int score = 0;
cout << "请输入你的分数:" << endl;
cin >> score;
if (score > 600)
{
cout << "恭喜你考上了一本大学" << endl;
}
else {
cout << "很遗憾你未考上一本大学" << endl;
}
system("pause");
return 0;
}
多条件if语句
多个else if
案例:输入一个分数,如果大于600分,视为考上一本大学,并打印
如果大于500分,视为考上二本大学,并打印
如果大于400分,视为考上三本大学,并打印
小于等于400分,视为未考上大学,并打印
#include<iostream>
using namespace std;
int main()
{
int score = 0;
cout << "请输入你的分数:"<< endl;
cin >> score;
if (score > 600)
{
cout << "恭喜你考上了一本大学"<< endl;
}
else if (score > 500)
{
cout << "恭喜你考上了二本大学" << endl;
}
else if (score > 400)
{
cout << "恭喜你考上了三本大学" << endl;
}
else {
cout << "很遗憾你未考上大学" << endl;
}
system("pause");
return 0;
}
嵌套if语句
案例:输入一个分数,如果大于600分,视为考上一本大学
如果大于500分,视为考上二本大学,并打印
小于等于400分,视为未考上大学,并打印
在一本中,如果大于700分,视为考上清华,大于650分,考入北大,否 则,打印恭喜你考上了一本大学。
所以将上面代码第一个if内容修改如下:
if (score > 600)
{
if (score > 700)
{
cout << "恭喜你考上了清华大学" << endl;
}
else if (score > 650)
{
cout << "恭喜你考上了北京大学" << endl;
}
else {
cout << "恭喜你考上了一本大学" << endl;
}
}
1.1.2三目运算符
语法:表达式1?表达式2:表达式3;
表达式1为真的话执行表达式2,否则执行表达式3
eg:下面代码的执行结果就是c=10
int main()
{
int a = 10;
int b = 20;
int c = a > b ? b : a;
cout << "c=" << c << endl;
system("pause");
return 0;
}
1.1.3switch语句
break为退出当前分支
语法:switch(表达式)
{
case结果1:执行语句;break;
case结果2:执行语句;break;
...
default:执行语句;break;
}
案例:给电影评分,10~9经典,8~7非常好,6~5一般,5以下烂片
int main()
{
cout << "请给电影进行评分:(0~10)" << endl;
int score=0;
cin >> score;
switch (score)
{
case 10:;
case 9:cout << "你认为是经典" << endl;break;
case 8:;
case 7:cout << "你认为非常好" << endl; break;
case 6:;
case 5:cout << "你认为一般" << endl; break;
default:cout << "你认为是是烂片" << endl;
}
system("pause");
return 0;
}
1.2循环结构
1.2.1while循环
语句:while(循环条件){循环语句}
作用:满足循环条件,则执行循环语句。
案例:在屏幕中打印0-9这10个数字
int main()
{
int num = 0;
while (num < 10)
{
cout << num << endl;
num++;
}
system("pause");
return 0;
}
注意:在循环中,要避免死循环
案例:系统随机生成一个1-100之间的随机数,玩家进行猜测,如果猜测错误则提示过大或者过小,如果猜对则玩家胜利,并且退出游戏。
那么怎么生成一个随机数?在c++中我们用rand,eg:rand()%100---表示生成一个0-99的随机数。rand()%100+1就表示一个1-100之间的随机数
案例代码如下:
#include<iostream>
using namespace std;
int main()
{
int number = rand() % 100 + 1;
int n = 0;
while (1)
{
cout << "请玩家猜一个数字" << endl;
cin >> n;
if (n > number)
{
cout << "猜大了"<< endl;
}
else if (n < number)
{
cout << "猜小了" << endl;
}
else
{
cout << "恭喜你猜对了" << endl; break;
}
}
system("pause");
return 0;
}
而上述代码生成的都是伪随机数,要想真的生成一个随机数,就要添加随机数种子,作用就是当前系统时间生成随机数,防止每次都一样。即添加:srand((unsigned int)time(NULL));使用time需要引入time系统时间头文件----#include<ctime>
1.2.2do while循环
do{循环语句}while(循环条件);
与while相比会先执行一次再判断
案例:水仙花数---指一个3位数,它的每个位上的数字的3次幂之和等于它本身。eg:1^3+5^3+3^3=153
代码如下:
int main()
{
int num = 100;
do{
int a = num / 100;
int b = (num / 10) % 10;
int c =num % 10;
int n = a*a*a + b*b*b + c*c*c;
if (n == num)
{
cout <<n<<" 是水仙花数"<< endl;
}
num++;
} while (num<1000);
system("pause");
return 0;
}
1.2.3for循环
语法:for(起始表达式;循环条件;末尾表达式){循环语句}
起始表达式执行一次
案例:敲桌子---从1开始到数字100,如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,我们打印敲桌子,其余数字直接打印输出。
int main()
{
for (int i = 1; i <= 100; i++)
{
int a = i % 10;//个位
int b = i / 10;//十位
if (a == 7)
{
cout << "敲桌子,该数是"<<i<< endl;
}
else if (b == 7)
{
cout << "敲桌子,该数是" <<i<< endl;
}
else if (i % 7 == 0)//被7整除
{
cout << "敲桌子,该数是" << i << endl;
}
else {
cout << i<< endl;
}
}
system("pause");
return 0;
}
1.2.4嵌套循环
案例:打印十行十列的星图
int main()
{
for (int j = 0; j < 10; j++)
{
for (int i = 0; i < 10; i++)
{
cout << "* ";
}
cout<<endl;//换行
}
system("pause");
return 0;
}
案例:九九乘法表
int main()
{
for (int i = 1; i < 10; i++)
{
int j = 1;
while (j <= i)//一行
{
cout << j<< "*" << i<< "=" << (i*j)<<" ";
j++;
}
cout << endl;
}
system("pause");
return 0;
}
1.3跳转结构
1.3.1break语句
作用:在switch中,是终止case并跳出switch;在循环中,是跳出当前循环;在嵌套循环中是跳出内循环。
1.3.2continue语句
作用:在循环语句中,跳过本次循环后继续执行剩下的循环。
1.3.3goto语句
语法:goto后面是一个标记,并且这个标记必须存在且有:
作用:可以无条件的跳转代码。
eg:下面代码会直接跳转到4.******