【c++】程序流程结构

目录

1.1选择结构

1.2循环结构

1.3跳转结构


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.******

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值