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

输出结果:

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

总结

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

(0)

相关推荐

  • C++结构体与类指针知识点总结

    在结构体或类中, 指针访问其成员函数或变量通过 "->" 运算符或者看代码注释部分, 注释部分的操作不推荐: #include <iostream> #include <cstring> using namespace std; struct STRUCT { string hello; }; int main() { STRUCT *str=new STRUCT; str->hello="Hello";//或者可以写成: (*s

  • 浅析C++中结构体的定义、初始化和引用

    定义:结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构. 声明一个结构体类型的形式是: 复制代码 代码如下: struct Student{      //声明一个结构体类型Student  int num;         //声明一个整形变量num  char name[20];   //声明一个字符型数组name  char sex;        //声明一个字符型变量sex  int age;         //声明一个整形变量age  float

  • 详解C++程序中定义struct结构体的方法

    什么是结构体? 简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型,第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同. 结构体的定义 定义结构体使用struct修饰符,例如: struc

  • C++程序的执行顺序结构以及关系和逻辑运算符讲解

    C++顺序结构程序 [例]求一元二次方程式ax2+bx+c=0的根.a,b,c的值在运行时由键盘输入,它们的值满足b2-4ac≥0.根据求x1,x2的算法.它可以编写出以下C++程序: #include <iostream> #include <cmath> //由于程序要用到数学函数sqrt,故应包含头文件cmath using namespace std; int main( ) { float a,b,c,x1,x2; cin>>a>>b>>

  • C++中对C语言结构体用法的扩充

    最近在学习C++,了解到,C++中对C做了扩充,使用结构体时也可以像类一样,规定私有数据类型和公有数据类型,同时也可以在struct中实现方法设置等等. 但为了保持面对对象的特性,建议还是使用class来描述一个类. 案例如下: #include <iostream> #include <ctime> using namespace std ; typedef struct student { private : int a , b , c ; public : void set(

  • 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 循环嵌套 总结

  • JavaScript 程序循环结构详解

    目录 选择结构 循环结构 while do - while for 循环 for - in - for -of- 小结 终止循环 break continue 二层循环 总结 选择结构 单分支的if结构 if(条件){ 条件满足后执行的代码 } 如果大括号中只有一条语句,此时可以省略大括号,但是强烈不建议这样写 if(条件) console.log('点点点') 二分支if结构语句 if (条件){ 条件满足后执行的代码 } else{ 条件不满足后执行的代码 } 多分支if结构语句 if(条件

  • 网络安全渗透测试小程序抓包流程步骤详解

    目录 小程序测试流程 搜索目标小程序 小程序主体信息确认 小程序包获取 PC端 windows端获取小程序包流程 移动端 解包 调试 抓包 小程序测试流程 分为两个方面,解包可以挖掘信息泄露问题.隐藏的接口,抓包可以测试一些逻辑漏洞.API安全问题.两者结合起来就可以边调试边进行测试,更方便于安全测试. 搜索目标小程序 目标搜索不能仅仅局限于主体单位,支撑单位.供应商.全资子公司等都可能是入口点,所以小程序当然也不能放过它们. 小程序主体信息确认 查看小程序账号主体信息,否则打偏了花费了时间不说

  • ASP.NET MVC模式中应用程序结构详解

    目录 一.App_Data 二.App_Start 三.Content 四.Controllers 五.font 六.Models 七.Scripts 八.Views 九.Web.config 1.根目录下面的Web.config文件 2.Views文件夹下面的Web.config 十.Global.asax 在上一篇文章中,讲解了一些MVC的概念,并且创建了第一个ASP.NET MVC项目,这篇文章将讲解ASP.NET MVC程序中的代码解构,新创建的MVC应用程序解构如下图所示: 一.App

  • Android 应用程序的启动流程示例详解

    目录 应用进程的启动流程 1.ActivityStackSupervisor.startSpecificActivity 2.ATMS.startProcessAsync 3.LocalService.startProcess 4.startProcessLocked函数 5.ProcessList.startProcessLocked 6.ProcessList.startProcessLocked重载 7.ProcessList.startProcess 8.ZygoteState.star

  • Java基础之switch分支结构详解

    一.基本语法 二.流程图 1.画出 swtich 出流程 2.案例说明流程图 三.快速入门 案例:Switch01.java 请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g a 表示星期一,b 表示星期二 - 根据用户的输入显示相应的信息.要求使用 switch 语句完成 代码: /* 案例:Switch01.java 请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g a表示星期一,b表示星期二 - 根据用户的输入显示相应的信息.要求使用 swi

  • Python 循环结构详解

    目录 一.While循环 二.While…else…循环 三.for循环 四.for…else…循环 五.循环体结束语句 六.嵌套循环 前言: 在编写代码时如果能够简化一个程序,把重复的代码形成公共部分,利用语法来控制,对代码进行循环往复的执行,这就形成了循环结构逻辑. 一.While循环 While循环的语法格式如下: while 条件表达式 :    代码段(包含改变计数器值的语句) while 关键词后面紧跟的条件表达式决定了循环是够进行下去. 下面用while语句实现求1-100的累加和

  • Python流程控制语句详解

    目录 1.if判断 1.1 if语句 1.2 else语句 1.3 elif语句 2.循环 2.1 while循环 2.2 for循环 2.3 break和continue语句 3.其他 1.if判断 1.1 if语句 if 表达式: 语句1 语句2 …… 1.“if”后的条件测试不止支持布尔型,也可以使用数字. 2.如果条件测试的内容是字符串,则只有字符串是空字符串时,条件测试的结果才为“False”. 3.不仅仅是字符串,条件测试中空列表.空元组.空字典也是“False”. 4.当if条件为

  • python学习 流程控制语句详解

    ###################### 分支语句 python3.5 ################ #代码的缩进格式很重要 建议4个空格来控制 #根据逻辑值(True,Flase)判断程序的运行方向 # Ture:表示非空的量(String,tuple元组 .list.set.dictonary),所有非零的数字 # False:0,None .空的量 #逻辑表达式 可以包含 逻辑运算符 and or not if: ##################################

  • 微信小程序 require机制详解及实例代码

    微信小程序 require机制详解 一, JS模块加载:一次性加载全部JS, 但并不一定立即执行. 先提一提微信小程序架构: 类浏览器 -> HTTP本地服务 -> 云端服务 微信小程序运行的架构,基本上是浏览器 -> HTTP本地服务 -> 云端服务, HTTP本地服务用来读取本地文件或者代理云端的文件资源.读取项目中JS文件, 是由HTTP本地服务取本地存储的脚本文件. 似乎比较简单,一个HTML 引用所有JS文件 既然采用了这种架构,那微信小程序就类似浏览器那样,借助一个HT

随机推荐