c/c++开发分享C++ 程序流程结构详解

服务器sass管理系统

目录1.选择结构1.1 判断语句if1.单行if语句 if#include<iostream>using namespace std;int main() {//选择语句 if语句//用户

目录

                1.选择结构

                1.1 判断语句if

                1.单行if语句 if

                %ignore_pre_1%

                2.多行if语句 if…else

                  #include<iostream>  using namespace std;  int main() {  	//1、用户输入分数  	int score = 0;  	cout << "请输入一个分数:" << endl;  	cin >> score;  	//2、打印用户输入的分数  	cout << "您输入的分数为:" << score << endl;  	//3、判断是否大于600,如果大于,那么输出  	if (score > 600)  	{  		cout << "恭喜 您考上了一本大学!";  	}  	else  	{  		cout << "未考上一本";  	}  	return 0;  }

                3.多条件if语句 if…else if…else if …else

                  #include<iostream>  using namespace std;  int main() {  	//1、用户输入分数  	int score = 0;  	cout << "请输入一个分数:" << endl;  	cin >> score;  	//2、打印用户输入的分数  	cout << "您输入的分数为:" << score << endl;  	//3、分数大于600,视为考上一本大学  	//大于500,视为考上二本大学,屏幕输出  	//大于400,视为考上三本大学,屏幕输出  	//小于等于400,视为未考上本科  	if (score > 600)  	{  		cout << "恭喜 您考上了一本大学!";  	}  	else if (score > 500)  	{  		cout << "恭喜 您考上了二本大学!";  	}  	else if (score > 400)  	{  		cout << "恭喜 您考上了二本大学!";  	}  	else  	{  		cout << "未考上本科";  	}  	return 0;  }

                4.嵌套if语句

                例1:三个数找最大

                  #include<iostream>  using namespace std;  int main() {  	int a, b, c;  	cin >> a >> b >> c;  	cout << "a=" << a << endl;  	cout << "b=" << b << endl;  	cout << "c=" << c << endl;  	if (a>b)// a比b大  	{  		if (a>c)//a最大  		{  			cout << "a最大" << endl;  		}  		else  		{   			cout << "c最大" << endl;  		}  	}  	else// b比a大  	{  		if (b > c)//b最大  		{  			cout << "b最大" << endl;  		}  		else  		{  			cout << "c最大" << endl;  		}  	}  	return 0;  }

                例2:判断是否是闰年

                闰年的定义:

                • 能被4整除,但不能被100整除;
                • 能被400整除;

                法一:使用关系运算符判断

                  #include<iostream>  using namespace std;             //命名空间   int main() {	//主函数  	int year;  	cin >> year;  	if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)//&&优先级更高   	{  		cout << "闰年" << endl;  	}  	else  	{  		cout << "不是闰年" << endl;  	}  	return 0;  }

                珐二:嵌套if

                  #include<iostream>  using namespace std;             //命名空间   int main() {	//主函数  	int year;  	cin >> year;  	if (year % 4 == 0)  	{  		if (year%100==0)  		{  			if (year % 400 == 0) {  				cout << "闰年" << endl;  			}  			else  			{  				cout << "不是闰年" << endl;  			}  		}  		else  		{  			cout << "闰年" << endl;  		}  	}  	else  	{  		cout << "不是闰年" << endl;  	}  	return 0;  }

                1.2 三目运算符判断

                语法:表达式1 ? 表达式2 : 表达式3

                【解释】若表达式1的值为真,则执行表达式2,并返回表达式2的结果;

                若表达式1的值为假,则执行表达式3,并返回表达式3的结果

                例3:两个数找最大

                  #include<iostream>  using namespace std;  int main() {  	//三目运算符  	//创建3个变量 a b c  	// 将a和b做比较,将变量大的值赋值给变量c  	int a = 10;  	int b = 0;  	int c;  	c=(a > b ? a : b);  	cout << "c=" << c << endl;//10  	//c++中三目运算符返回的是变量,可以继续赋值  	(a > b ? a : b)=100;  	cout << "a=" << a << endl;  	cout << "b=" << b << endl;  	return 0;  }

                例4:判断一个数是否是3和5的整倍数

                  #include<iostream>  using namespace std;             //命名空间   int main() {	//主函数  	int num;  	cout << "please input a number:" << endl;  	cin >> num;      //法1:  	(num % 3== 0&&num%5==0) ?           cout << "yes" << endl :           cout << "no" << endl;      //法2:      (num % 3 == 0)?  		((num%5==0) ? cout << "yes" << endl : cout << "no" << endl):  		cout << "no" << endl;  	return 0;  }

                1.3 开关语句switch

                注意点:

                1.switch语句中表达式类型只能是整型或字符型;

                2.case里如果没有break,那么程序会一直向下执行。

                例5:给电影评分

                  #include<iostream>  using namespace std;  int main() {  	//switch语句  	//给电影进行打分  	//10~9 经典  	//8~7 非常好  	//6~5 一般  	//5以下 烂片  	//1、提示用户给电影评分  	cout << "请给电影评分" << endl;  	//2、用户开始进行打分  	int score;  	cin >> score;  	cout << "score=" << score << endl;  	//3、根据用户输入的分数来提示用户最后的结果  	switch (score)  	{  	case 10:  			cout << "您认为是经典电影" << endl;  			break;//退出当前分支  	case 9:  		cout << "您认为是经典电影" << endl;  		break;  	case 8:  		cout << "您认为是电影非常好" << endl;  		break;  	case 7:  		cout << "您认为是电影非常好" << endl;   		break;  	case 6:  		cout << "您认为是电影一般" << endl;   		break;  	case 5:  		cout << "您认为是电影一般" << endl;   		break;  	default:  		cout << "您认为是烂片" << endl;  		break;  	}  	//if和switch区别  	//switch 缺点,判断时候只能是整型或者字符型,不可以是一个区间  	//switch 有点,结构清晰,执行效率高  	return 0;  }

                例6:星期几

                switch语句内遇break才停止执行

                  #include<iostream>  using namespace std;             //命名空间   int main() {	//主函数  	int n;  	cin >> n;  	switch (n)//首先跳转到与输入一样的case,接着往下走,遇break停止或知道语句走完才停止  	{  	case 1:  		cout << "monday" << endl;  	case 2:  		cout << "tuesday" << endl;  	case 3:  		cout << "wednesday" << endl;  	case 4:  		cout << "thursday" << endl;  	case 5:  		cout << "friday" << endl;  	case 6:  		cout << "saturday" << endl;  	case 7:  		cout << "sunday" << endl;  	default:  		cout << "input error" << endl;  	}  	return 0;  }

                输出结果:

                C++ 程序流程结构详解

                2.循环结构

                2.1 while

                例1:用while循环计算1~10累加

                  #include<iostream>  using namespace std;             //命名空间   int main() {	//主函数  	int i = 1, sum = 0;  	while (i<=10)  	{  		sum += i;  		i++;  	}  	cout << sum << endl;  	return 0;  }

                例2:案例-猜数字

                  #include<iostream>  using namespace std;  #include<ctime>  int main() {  	//添加随机数种子 作用利用当前系统时间生成随机数,防止每次随机数都一样  	srand((unsigned int)time(null));  	//1、系统生成随机数  	int num = rand() % 100 + 1; //生成0~100的随机数  	cout << num << endl;  	//2、玩家进行猜测  	cout << "请玩家输入猜测的数据:" << endl;  	int val;	//玩家输入的数据  	while (1)  	{  		cin >> val;  		//3、判断玩家的猜测  		if (val > num)  		{  			cout << "猜测过大!" << endl;  		}  		else if(val < num)  		{  			cout << "猜测过小!" << endl;  		}  		else  		{  			cout << "猜对啦!" << endl;  			break;	//利用该关键字,退出循环  		}  	}  	//猜对 退出游戏  	//猜错 提示猜的结果,过大或者过小 重新返回第2步  	return 0;  }

                2.2 do…while

                例3:用do…while循环计算1~10累加

                  #include<iostream>  using namespace std;             //命名空间   int main() {	//主函数  	int i = 1, sum = 0;  	do  	{  		sum += i;  		i++;  	} while (i <= 10);  	cout << sum << endl;//55  	return 0;  }

                while与do…while的区别:

                do…while无论while中条件是否为真,先执行{}内语句;

                while中条件若为假,则不执行。

                例4:案例-水仙花数

                  #include<iostream>  using namespace std;  int main() {  	int num = 100;  	do  	{  		int a = num % 10;//	个位  		int b = num / 10 % 10;	//十位  		int c = num / 100;	//百位  		if (num == a*a*a+b*b*b+c*c*c)  		{  			cout << num << endl;  		}  		num++;  	} while (num<1000);  	return 0;  }

                2.3 for

                例5:用for循环计算1~10累加

                  #include<iostream>  using namespace std;             //命名空间   int main() {	//主函数  	int sum = 0;  	for (int i = 1; i <= 10; i++)  	{  		sum += i;  	}  	cout << sum << endl;  	return 0;  }

                例6:敲桌子

                  #include<iostream>  using namespace std;  int main() {  	//1、输出1~100的数字  	//2、找7的倍数,个位有7,十位有7  	for (int i = 1; i <=100; i++)  	{  		if (i%7==0||i%10==7||i/10%10==7) {  			cout << "敲桌子!" << endl;  		}  		else  		{  			cout << i << endl;  		}  	}  	return 0;  }

                2.4 循环控制

                1.break:跳出循环

                例7:遇到负数,则停止累加

                  #include <iostream>  using namespace std;  int main()  {  	int i, n, sum;  	sum = 0;  	cout << "input 10 number" << endl;  	for (i = 1; i <= 10; i++)  	{  		cout << i << ":";  		cin >> n;  		if (n < 0) 	//判断输入是否为负数,是负数就停止累加   			break;  		sum += n; 	//对输入的数进行累加  	}  	cout << "the result :" << sum << endl;  	return 0;  }

                2.continu:跳出本次循环,继续下一次循环

                例8:遇负,则不进行累加,接着加下一个正数

                  #include <iostream>  using namespace std;  int main()  {  	int i, n, sum;  	sum = 0;  	cout << "input 10 number" << endl;  	for (i = 1; i <= 10; i++)  	{  		cout << i << ":";  		cin >> n;  		if (n < 0)	//判断输入是否为负数  			continue;  		sum += n;	//对输入的数进行累加  	}  	cout << "the result :" << sum << endl;  	return 0;  }

                3.goto:跳转到label,接着往下走

                例9:跳转

                  #include <iostream>  using namespace std;  int main()  {  	int ivar = 0;			//定义一个整型变量,初始化为0  	int num = 0;			//定义一个整型变量,初始化为0  label:  					//定义一个标签  	ivar++;					//ivar自加1  	num += ivar;			//累加求和  	if (ivar < 10)			//判断ivar是否小于100  	{  		goto label;			//转向标签  	}  	cout << ivar << num << endl;  	return 0;  }

                注意点:goto语句不能越过复合语句之外的变量定义的语句,例如,下面是非法的

                  	goto label;  	int i 10;  label:  	cout << "goto" << endl;

                正确的:

                  	goto label;  	{  	int i 10;   	}  label:  	cout << "goto" << endl;

                2.5 循环嵌套

                例10:打印三角形

                  #include<iostream>  using namespace std;             //命名空间   int main() {	//主函数  	int i, j, k;  	for (i = 1; i <= 5; i++)					//控制行数  	{  		for (j = 1; j <= 5 - i; j++)				//控制空格数  			cout << " ";  		for (k = 1; k <= 2 * i - 1; k++)			//控制打印*号的数量  			cout << "*";  		cout << endl;  	}  	return 0;  }

                C++ 程序流程结构详解

                例11:打印星图

                  #include<iostream>  using namespace std;  int main() {  	//利用嵌套循环实现星图  	//打印一行星图  	//外层循环  	for (int i = 0; i < 10; i++)  	{  		//内层循环  		for (int j = 0; j < 10; j++) {  			cout << "* ";  		}  		cout << endl;  	}  	return 0;  }

                C++ 程序流程结构详解

                例12:输出乘法口诀表

                  #include<iostream>  using namespace std;  int main() {  	for (int i = 1; i < 10; i++)  	{  		for (int j = 1; j <= i; j++) {  			cout << j << "*" << i << "=" << i * j << "t";  		}  		cout << endl;   	}  	return 0;  }

                C++ 程序流程结构详解

                总结

                本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注<猴子技术宅>的更多内容!

                需要了解更多c/c++开发分享C++ 程序流程结构详解,都可以关注C/C++技术分享栏目—猴子技术宅(www.ssfiction.com)

                本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

                如若转载,请注明出处:https://www.ssfiction.com/c-cyuyankaifa/792780.html

                发表评论

                邮箱地址不会被公开。 必填项已用*标注