iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++ 程序流程结构详解
  • 282
分享到

C++ 程序流程结构详解

2024-04-02 19:04:59 282人浏览 安东尼
摘要

目录1.选择结构1.1 判断语句if1.单行if语句 if2.多行if语句 if...else3.多条件if语句 if...else if...else if ...else4.嵌套

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;
}

输出结果:

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;
}


例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;
}


例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;
}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: C++ 程序流程结构详解

本文链接: https://www.lsjlt.com/news/135425.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++ 程序流程结构详解
    目录1.选择结构1.1 判断语句if1.单行if语句 if2.多行if语句 if...else3.多条件if语句 if...else if...else if ...else4.嵌套...
    99+
    2024-04-02
  • C++的程序流程结构你了解多少
    目录前言1 选择结构1.1 if语句(和C没啥不一样)1.2 三目运算符1.3 switch语句2 循环结构2.1 while 循环语句2.2 do…while循环语句...
    99+
    2024-04-02
  • C++的程序流程结构是什么
    这篇文章主要介绍了C++的程序流程结构是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++的程序流程结构是什么文章都会有所收获,下面我们一起来看看吧。前言C/C++支持最基本的三种程序运行结构:顺序结构、...
    99+
    2023-06-29
  • 解析C# 程序结构
    目录C# Hello World 实例编译 & 执行 C# 程序在我们学习 C# 编程语言的基础构件块之前,让我们先看一下 C# 的最小的程序结构,以便作为接下来章节的参考。...
    99+
    2024-04-02
  • Java程序顺序结构中逻辑控制语句详解流程
    目录一.顺序结构二.分支结构1.if语句2.switch 语句三. 循环结构1 .while 循环2. break3. continue4.for循环5.do while循环四.输入...
    99+
    2024-04-02
  • JavaScript程序循环结构详解
    目录选择结构循环结构whiledo … whilefor 循环for … in …for …of…小结终止循环breakcontinue二层循环总结选择结构 单分支的if结构 i...
    99+
    2024-04-02
  • C# 程序通用结构
    C# 程序由一个或多个文件组成。 每个文件均包含零个或多个命名空间。 一个命名空间包含类、结构、接口、枚举、委托等类型或其他命名空间。 以下示例是包含所有这些元素的 C# 程序主干。...
    99+
    2024-04-02
  • python程序的组织结构详解
    目录程序的组织结构顺序结构对象的布尔值选择结构单分支结构小实验双分支结构小实验多分支结构小实验python代码的独特写法分支结构_嵌套if的使用小实验条件表达式PASS语句总结程序的...
    99+
    2024-04-02
  • 详解php程序的分支结构
    在编程中,程序的分支结构是非常常见的一种结构,它可以根据不同的条件选择不同的执行路径,使程序的功能更加灵活和实用。在php编程语言中也有实现程序分支结构的语法,下面就让我们来了解一下。if语句if语句是最基本的分支结构语句,它可以根据条件选...
    99+
    2023-05-14
  • [Python] 程序结构与控制流
    1. 条件语句 if、else与elif语句用于控制条件代码的执行。条件语句的一般格式如下: if expression: statements elif expression: statements elif expres...
    99+
    2023-01-31
    结构 程序 Python
  • C语言 数据结构之数组模拟实现顺序表流程详解
    目录线性表和顺序表线性表顺序表静态顺序表动态顺序表代码已经放在Gitee上,需要可以小伙伴可以去看看 用C语言数组模拟实现顺序表 Gitee 线性表和顺序表 线性表 线性表(line...
    99+
    2024-04-02
  • C程序结构的入门
    目录C Hello World 实例编译 & 执行 C 程序在我们学习 C 语言的基本构建块之前,让我们先来看看一个最小的 C 程序结构,在接下来的章节中可以以此作为参考。 ...
    99+
    2024-04-02
  • 一文详解C++的程序流程控制
    目录一、前言2、三目运算符3、switch语句三、循环结构1、while循环语句2、do…while循环语句3、for循环语句四、跳转语句1、break语句2、cont...
    99+
    2022-11-13
    C++程序流程控制 C++流程控制
  • Java流程控制之顺序结构
    目录1.关于顺序结构2.顺序结构简单图示3.示例助解Java中的流程控制语句可以这样分类:顺序结构,选择结构,循环结构。 1.关于顺序结构 JAVA的基本结构就是顺序结构,除非特别指...
    99+
    2024-04-02
  • C语言程序中结构体的内存对齐详解
    目录一、为什么存在内存对齐二、结构体的内存对齐四规则三、举例一、为什么存在内存对齐 1.平台原因(移植原因): 不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某...
    99+
    2022-11-13
    C语言结构体内存对齐 C语言 内存对齐 C语言 结构体
  • C#的程序结构是什么
    本篇内容主要讲解“C#的程序结构是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#的程序结构是什么”吧!C# 程序结构在我们学习 C# 编程语言的基础构件块之前,让我们先看一下 ...
    99+
    2023-06-17
  • Python程序结构
    The reload built-in function has been moved to importlib module in Python 3.4from importlib import reload参考:http://blog....
    99+
    2023-01-31
    结构 程序 Python
  • C++结构体详解
    目录一、结构体的定义二、创建具体的变量(3种)三、结构体数组四、结构体指针五、结构体嵌套结构体六、结构体做函数参数1、值传递2、地址传递七、结构体中const使用场景总结一、结构体的...
    99+
    2024-04-02
  • ASP.NET MVC模式中应用程序结构详解
    目录一、App_Data二、App_Start三、Content四、Controllers五、font六、Models七、Scripts八、Views九、Web.config1、根目...
    99+
    2024-04-02
  • Java分支结构程序设计实例详解
    1.从键盘输入三个整数分别存入num1,num2,num3,对他们进行排序,并且从小到大输出。 import java.util.Scanner; public class Comp...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作