首页 > 编程语言 >CH04_程序流程结构

CH04_程序流程结构

时间:2024-06-11 20:46:43浏览次数:14  
标签:语句 cout 示例 int CH04 程序流程 循环 include 结构

CH04_程序流程结构

程序流程结构

C/C++支持最基本的三种程序运行结构:

  • 顺序结构:程序按顺序执行,不发生挑战
  • 选择结构:依据条件是否满足,有选择的执行相应的功能
  • 循环结构:依据条件是否满足,循环多次执行某段代码

选择结构

if语句

作用:执行满足条件的语句

单行格式if语句:if(条件){语句块}

示例:

#include <iostream>
using namespace std;

int main() {

	int score = 72;

	//判断条件是否满足
	if (score >= 60) {
		cout << "及格了" << endl;
	}

	system("pause");
	return 0;
}

多行格式if语句:if(条件){语句块}else{语句块}

示例:

#include <iostream>
using namespace std;

int main() {

	int score = 72;

	//判断条件是否满足
	if (score >= 60) {
		cout << "及格了" << endl;
	}
	else {
		cout << "继续努力" << endl;
	}

	system("pause");
	return 0;
}

多条件的if语句:if(条件){语句块}else if(条件){语句块}...else{语句块}

示例:

#include <iostream>
using namespace std;

int main() {

	int score = 0;

	cout << "请输入你的考试成绩:" << endl;
	cin >> score;

	//判断条件
	if (score >= 80) {
		cout << "优秀" << endl;
	}
	else if (score >= 70) {
		cout << "良好" << endl;
	}
	else if (score >= 60) {
		cout << "及格" << endl;
	}
	else {
		cout << "差" << endl;
	}

	system("pause");
	return 0;
}

嵌套if语句:在if语句中,可以嵌套使用if语句,达到更精准的条件判断

示例:

#include <iostream>
using namespace std;

int main() {

	//学校组建校篮球队,面向全校招募队员,要求身高不低于1.75米

	char flag = 'n';
	double height = 0;

	cout << "你是本校学生吗?(y/n):" << endl;
	cin >> flag;
	cout << "你身高多少(cm):" << endl;
	cin >> height;

	if (flag == 'y') {

		if (height >= 175) {
			cout << "恭喜你,报名成功!" << endl;
		}
		else {
			cout << "很遗憾,身高不满足要求!" << endl;
		}
	}
	else {
		cout << "非本校学生,禁止报名!" << endl;
	}

	system("pause");
	return 0;
}

三目运算符

作用:通过三目运算符实现简单的判断

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

描述:

如果表达式1为真,则执行表达式2,并返回表达式2的结果;

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

示例:

#include <iostream>
using namespace std;

int main() {

	int age = 0;

	cout << "请输入你的年龄:"<<endl;
	cin >> age;

	cout << "你是:" << (age >= 18 ? "成年人" : "未成年人") << endl;

	system("pause");
	return 0;
}

switch语句

作用:执行等值多条件的分支语句

语法:

switch(表达式){
    case 值1:
        //语句块
        break;
    case 值2:
        //语句块
        break;
    case 值3:
        //语句块
        break;
    default:
        //语句块
        break;
}

示例:

#include <iostream>
using namespace std;

int main() {

	int mingCi = 0;

	cout << "请输入你的名次:" << endl;
	cin >> mingCi;

	switch (mingCi) {
	case 1:
		cout << "奖励一个女朋友" << endl;
		break;
	case 2:
		cout << "奖励一个笔记本电脑" << endl;
		break;
	case 3:
		cout << "奖励一个移动硬盘" << endl;
		break;
	default:
		cout << "什么奖励都没有" << endl;
		break;
	}

	system("pause");
	return 0;
}

循环结构

while循环

作用:满足循环条件执行循环语句。

语法:while(循环条件){循环语句}

描述:只要循环条件的结果为真,就执行循环语句。

示例:

#include <iostream>
using namespace std;

int main() {

	//产生的随机数范围为:1-100
	//int num = rand() % 100 + 1;
 
	int count = 0;

	while (count < 10) {
		cout << "好好学习,天天向上!" << endl;
		count++;
	}
	
	system("pause");
	return 0;
}

do-while循环

作用:满足循环条件,执行循环语句。

语法:do{循环语句}while(循环条件);

描述:与while的区别在于do..while会先执行一次循环语句,再判断循环条件。

示例:

#include <iostream>
using namespace std;

int main() {

	int score = 0;

	do {

		cout << "参加了一次考试,请输入分数:" << endl;
		cin >> score;

	} while (score<60);

	cout << "恭喜你,考试合格!" << endl;

	system("pause");
	return 0;
}

for循环

作用:满足循环条件,执行循环语句。

语法:for(初始部分;条件部分;迭代部分){循环语句}

示例:

#include <iostream>
using namespace std;


int main() {

	for (int i = 0; i < 10; i++) {
		cout << "hello world" << endl;
	}

	system("pause");
	return 0;
}

嵌套循环

作用:在循环体中再嵌套一层循环,解决一些实际问题

示例:

#include <iostream>
using namespace std;


int main() {

	for (int i = 1; i <=9; i++) {

		for (int j = 1; j <= i; j++) {
			cout << j<<"*"<<i<<"="<<(j*i)<<"\t";
		}
		cout << endl;
		
	}

	system("pause");
	return 0;
}

跳转语句

break语句

作用:用于跳出选择结构或循环结构。

描述:

1.出现在switch条件语句中,作用是终止case并跳出switch。

2.出现在循环语句中,作用是跳出当前的循环语句。

3.出现在嵌套循环中,跳出最近的内存循环结构。

示例:

#include <iostream>
using namespace std;


int main() {
	int score = 0;

	for (int i = 0; i <10; i++) {

		cout << "请输入分数:" << endl;
		cin >> score;

		if (score < 0) {
			cout << "分数输入错误,终止录入!" << endl;
			break;
		}	
	}

	system("pause");
	return 0;
}

continue语句

作用:在循环语句中,结束本次循环,继续下一次循环。

示例:

#include <iostream>
using namespace std;


int main() {
	
	for (int i = 1; i <= 100; i++) {

		if (i % 2 == 0)continue;

		cout << i << endl;
	}

	system("pause");
	return 0;
}

goto语句

作用:可以无条件跳转语句。

语法:goto 标记

描述:如果标记的名称存在,则执行到goto语句时,会跳转到标及的位置。

示例:

#include <iostream>
using namespace std;


int main() {

	cout << "1" << endl;

	goto Flag;

	cout << "2" << endl;
	cout << "3" << endl;
	cout << "4" << endl;

	Flag:

	cout << "5" << endl;

	system("pause");
	return 0;
}

标签:语句,cout,示例,int,CH04,程序流程,循环,include,结构
From: https://www.cnblogs.com/kaige-chen/p/18242668

相关文章

  • CH08_结构体
    CH08_结构体基本概念结构体属于用户自定义数据类型,允许用户存储不同的数据类型。定义和使用语法:struct结构体名{结构体成员列表}通过结构体创建变量的方式有三种:struct结构体名变量名struct结构体名变量名=定义结构体时顺便创建变量示例:#include<iostream>usi......
  • 【结构识别】Reconstructing propagation networks with natural diversity and ident
    摘要从数据中重构复杂网络结构和动力学的能力是理解和控制复杂系统集体动力学的基础。尽管最近在这方面取得了进展,但利用随机动态过程的有限时间序列重建网络仍然是一个尚未解决的问题。我们提出了一个基于压缩感知的框架去重构发生随机扩散动力学的复杂网络。我们将该方法应用于......
  • wimlib API 提供了一系列用于处理 Windows 映像文件(.wim 文件)的函数和数据结构,使开发
    wimlibAPI提供了一系列用于处理Windows映像文件(.wim文件)的函数和数据结构,使开发人员能够在其应用程序中集成对WIM文件的创建、修改和提取功能。以下是一些常见的wimlibAPI:WIM文件的创建和初始化:wimlib_create_new_wim():创建一个新的WIM文件。wimlib_open_wim():......
  • 飞书golang 发送机器人结构定义
    飞书golang发送机器人结构定义在Golang中,可以定义一个结构体来表示飞书(Feishu)机器人的数据。以下是一个简单的示例,展示了如何定义用于发送消息到飞书机器人的结构体:  packagemain import("bytes""encoding/json""fmt""net/http") //FeishuRobotPayl......
  • Java数据结构与算法(回溯算法)
    前言回溯算法是一种通过构建问题的解树(或解图)来逐步构建候选解的通用算法。它尝试通过一系列选择来解决问题,选择可能包括移动、添加一个元素到当前解、决定一个解的某部分等。当发现某个选择无法导致一个有效解时,算法会回退(即回溯),撤销该选择,并尝试其他选择。回溯算法通常用于......
  • 数据结构--第十章--内排序
    插入排序直接插入排序是一种稳定的排序方法快速排序递归调用树与性能分析快排算法实际上就是对枢轴的左右分区进行递归操作高效实现的快速排序算法是不稳定的且很复杂堆排序堆排序是不稳定的排序方法归并排序基数排序......
  • 结构化思维
     在日常工作中,我们时常会碰到这样的情况,有的人讲事情逻辑非常混乱,罗列了很多事项,却把握不到重点,无法把一件事情说清楚。这种思维混乱是典型的缺少结构化思维的表现。结构化思维非常重要,不仅仅体现在表达上,也体现在在我们分析问题的过程中。具备结构化思维,才能将问题分析地更......
  • FFmpeg结构体:AVIOContext
    1.描述AVIOContext是FFmpeg管理输入输出数据的结构体,位于avio.h文件中。2.结构体定义1typedefstructAVIOContext{2/**3*Aclassforprivateoptions.4*5*IfthisAVIOContextiscreatedbyavio_open2(),av_classissetand......
  • 数据结构---排序算法
    个人介绍hellohello~,这里是code袁~......
  • 开源高性能结构化日志模块NanoLog
      最近在写数据库程序,需要一个高性能的结构化日志记录组件,简单研究了一下Microsoft.Extensions.Logging和Serilog,还是决定重造一个轮子。一、使用方法  直接参考以下示例代码:NanoLogger.Start();DateTime?nullable=null;constboolboolValue=true;constcharch......