温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++程序的选择结构和循环结构详解

发布时间:2021-09-13 09:06:50 阅读:157 作者:chen 栏目:开发技术

这篇文章主要介绍“C++程序的选择结构和循环结构详解”,在日常操作中,相信很多人在C++程序的选择结构和循环结构详解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++程序的选择结构和循环结构详解”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

目录
  • 1.选择结构

    • 1.1 判断语句if

      • 1.单行if语句 if

      • 2.多行if语句 if...else

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

      • 4.嵌套if语句

    • 1.2 三目运算符判断

      • 1.3 开关语句switch

      • 2.循环结构

        • 2.1 while

          • 2.2 do...while

            • 2.3 for

              • 2.4 循环控制

                • 1.break:跳出循环

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

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

              • 2.5 循环嵌套

              1.选择结构

              1.1 判断语句if

              1.单行if语句 if
              #include<iostream>
              using namespace std;
              int main() {
              	//选择语句 if语句
              	//用户输入分数,如果分数大于600,视为考上一本,在屏幕上输出
              	//1、用户输入分数
              	int score = 0;
              	cout << "请输入一个分数:"<<endl;
              	cin >> score;
              	//2、打印用户输入的分数
              	cout << "您输入的分数为:" << score << endl;
              	//3、判断是否大于600,如果大于,那么输出
              	if (score >600)
              	{
              		cout << "恭喜您考上了一本大学";
              	}
              	return 0;
              }
              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++程序的选择结构和循环结构详解”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

              向AI问一下细节

              免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

              c++
              AI