顺序结构、选择结构

article/2025/4/23 3:04:38

1、顺序结构

计算机执行程序的步骤是从上到下依次执行。

2、选择结构

选择结构也叫条件控制语句,主要有if语句、if…else语句、条件表达式exp1? exp2:exp3、switch语句。

1)if语句、if…else语句

if语句主要有单分支、双分支和多分支三种,其对应的语法结构如下:

单分支:

if(表达式)

     语句;

双分支:

if(表达式)

     语句1;

else

    语句2;

多分支:(此处仅举个例子,还有很多其他多分支情况)

if(表达式)

     语句1;

else if(表达式)

     语句2;

else

    语句3;

举一个例子来看一下多分支选择的效果:

#include<stdio.h>
int main()
{int age=18;printf("请输入您的年纪:\n");scanf("%d", &age);if (age < 18)printf("未成年\n");else if (age >= 18 && age < 30)printf("青年\n");else if (age >= 30 && age < 50)printf("中年\n");else if (age >= 50 && age < 70)printf("年过半百\n");else if (age >= 70 && age < 200)printf("老年\n");elseprintf("输入年纪错误,请重新输入:\n");return 0;
}

运行结果:

 如果条件成立,要执行多条语句,应当使用代码块,即用大括号将语句括起来。

if (表达式1)
{语句列表1;
}
else
{语句列表2;
}

在使用if语句时,一个很重要的问题就是if和else的配对问题,else是和离它最近的if配对的,找准if和else的配对对理解整个选择语句的逻辑十分重要。

在if语句的判断中,建议将常量放在左侧,变量放在右侧。如下例所示:

#include<stdio.h>
int main()
{int num = 6;if (6 == num)printf("haha\n");return 0;
}

练习:输出1-100之间的奇数:

#include<stdio.h>
int main()
{int i = 0;while (i <= 100){if (i % 2 == 1)printf("%d ", i);i++;}return 0;
}

运行结果:

 当然,也有很多其他的做法,再举一例:

#include<stdio.h>
int main()
{int i = 1;while (i <= 100){i += 2;printf("%d ", i);}return 0;
}

运行结果:

 2)条件表达式exp1? exp2:exp3

表达式1为真则执行表达式2,那么表达式2为整个条件表达式的值。

表达式1为假则执行表达式3,那么表达式3为整个条件表达式的值。

3)switch语句

switch语句也是一种分支语句,多用于多分支的情况。

语法结构:

switch(整形表达式)

    case(整形常量表达式):

    break;

switch()

{

语句项;

}

switch后面的整形表达式表示该表达式计算的结果一定得是整形;整形常量表达式要求case后面的表达式的结果一定要是整形且必须是常量。

我们以星期几这种多分支结构来表现一下switch语句在多分支循环方面的优势。

#include<stdio.h>
int main()
{int day;printf("请输入星期几:\n");scanf("%d", &day);switch (day){case(1):printf("星期一\n");case(2):printf("星期二\n");case(3):printf("星期三\n");case(4):printf("星期四\n");case(5):printf("星期五\n");case(6):printf("星期六\n");case(7):printf("星期日\n");}return 0;
}

运行结果:

 当然,大家也能看出来,这个程序是不能够正确表达出我们想要的结果的,我们只想输出星期三,但是却输出了很多不想要的结果,这个时候,我们就不得不引出switch语句中的break。

在switch语句中,我们没法直接实现分支,搭配break使用才能实现真正的分支。看看接下来这个程序:

#include<stdio.h>
int main()
{int day;printf("请输入星期几:\n");scanf("%d", &day);switch (day){case(1):printf("星期一\n");break;case(2):printf("星期二\n");break;case(3):printf("星期三\n");break;case(4):printf("星期四\n");break;case(5):printf("星期五\n");break;case(6):printf("星期六\n");break;case(7):printf("星期日\n");break;}return 0;
}

运行结果:

 需要注意的是:不一定要每个case后面都要有break,主要是根据你需要的逻辑去设置的,举个例子,我们要实现以下功能:输入星期一至星期五时,打印工作日;输入星期六星期日时,打印休息日。

#include<stdio.h>
int main()
{int day;printf("请输入星期几:\n");scanf("%d", &day);switch (day){case(1):case(2):case(3):case(4):case(5):printf("工作日\n");break;case(6):case(7):printf("休息日\n");break;default:printf("输入错误,请重新输入:\n");break;}return 0;
}

运行结果:

 上述代码块中同时引入了default,default是默认的意思,简单介绍一下default字句的作用:

default字句是用来应对与所有case标签的值都不能匹配的情况的,将“default;”写在任何case标签可以出现的位置,当switch表达式的值并不匹配所有case标签的值的时候,这个default字句就会被执行。所以每个switch语句只能有一个default字句。不过它的位置并不进行限制,可以出现在语句列表的任何位置,而且语句流会像贯穿每一个case语句一样贯穿default语句。

以上内容整理自:

c语言编程 C语言入门 c语言(C语言程序设计教程 c语言视频教程 c语言零基础入门教程 学习c语言 c语言视频教程 c语音 C语言教程 C语言编程项目 C语言_哔哩哔哩_bilibili学习C语言学习C语言程序设计教程 c语言视频教程 谭浩强 c语言学习 谭浩强 谭浩强c语言零基础入门教程 c语言 c语言视频教程 c语音 C语言教程 C语言编程项目 C语言学习C语言程序设计教程 c语言视频教程 c语言零基础入门教程 c语言 c语言视频教程 c语音 C语言教程 C语言编程项目 C语言学习 C语言 c语言 C语言程序设计https://www.bilibili.com/video/BV1q54y1q79w?share_source=copy_web

坚持学习,坚持输出,如果读者有发现问题,欢迎批评指正哦!


http://chatgpt.dhexx.cn/article/2AqwqnJG.shtml

相关文章

if选择结构

if选择结构一共有三种分别是 if 型 if else 型 if else if else型 第一种 if型 使用场景&#xff1a;需要进行判断时使用&#xff1b; int a 1, b 1; if (a b){System.out.println(&qu…

选择结构(一)

一 流程控制 1.有三种基本结构:顺序结构、选择结构、循环结构 顺序结构 选择结构 循环结构 2.流程控制语句是控制程序中各语句执行顺序的语句 二 选择结构 1.根据一定的条件有选择地执行或跳过特定的语句 2.选择结构可以分为单分支、双分支、多分支 3.语法:if ( 表达式 ) {…

C语言 选择结构

一.选择结构 1. 单分支选择结构 2. 双分支选择结构 3. 多分支选择结构 1. 单分支选择结构 1.1何为单分支选择结构&#xff1f; 从开始到结束之间只有一条路可供选择。 1.2何为双分支结构&#xff1f; 从开始到结束之间有两条路可供选择。 1.3何为多分支结构&#xff1f; 从开…

C语言——选择结构

选择结构和条件判断 &#xff08;一&#xff09;if语句——实现两个分支 if 语句可以写成不同形式 if &#xff08;表达式&#xff09; 语句1——可以没有else语句if &#xff08;表达式&#xff09; 语句 1 else 语句 2 ——————————有else语句if &#xff08;表达式…

c语言 选择结构例题

目录 1、if 语句的例题 2、switch 语句例题 前面我有一篇讲选择结构的文章&#xff0c;同学们可以先看一下&#xff0c;温习温习。 应该就在前面几篇&#xff0c;我复制不了链接了&#xff0c;尴尬了。 1、if 语句的例题 先来一张图&#xff0c;将if 语句步骤简单的走一下…

python选择结构

1.选择结构 1.1单分支结构 1.1.1 语法&#xff1a; if 表达式:语句块 1.1.2. 流程图 1.1.3 例&#xff1a;输入2个数&#xff0c;输出最大值&#xff1a; aint(input()) bint(input()) maxa if a<b:maxb print(max) 1.1.4.注意&#xff1a; 表达式&#xff1a;一般表…

C语言的选择结构

选择结构 C语言有两种选择语句:(1)if语句:用来实现两个分支的选择结构 (2)switch语句:用来实现多分支条件的选择结构 例子:计算ax^2 + bx + c = 0的方程的根。 流程图: 代码: #include<stdio.h>#include<math.h>//计算ax^2 + bx + c = 0的方程的根。…

二、选择结构

目录 1.JavaScript的组成 1.三大核心 2.window对象的常用方法 2.if选择结构 3.多重if选择结构 4.嵌套if选择结构 5.switch选择结构 6.三元表达式 1.JavaScript的组成 1.三大核心 ESMAScript 核心语法&#xff08;标准规范&#xff09;-> ES6BOM 浏览器对象模式&am…

选择结构的使用

一、掌握if结构语句 二、掌握switch分支结构 三、两种结构语句的比较 学习结构之前首先要明白为什么要学习结构&#xff0c;结构有什么作用&#xff0c;有哪些结构&#xff0c; 首先我们要明白java代码中&#xff0c;程序运行的原理是从上到下一行一行运行的&#xff0c;如果…

C语言-选择结构

目录 选择结构 一、if-else语句 1.单选择 2.双选择 3.多选择 二.switch语句 选择结构 选择结构用于判断给定的条件&#xff0c;根据判断的结果判断某些条件&#xff0c;根据判断的结果来控制程序的流程 一、if-else语句 1.单选择 单选择通过if语句就可以实现&#xff0c…

Insert keyframe giving keying set failed to insert any key frames问题(已解决)

Blender 2.81 beta 问题描述 骨骼动画&#xff0c;进入姿态模式以后&#xff0c;调整了姿势然后按I键尝试插入关键帧&#xff0c;但是报错&#xff0c;报错信息很费解 “插入关键帧的帧位置” 于是切换到英文版显示 “Insert keyframe giving keying set failed to insert any…

论文阅读笔记:(2015, ijrr) Keyframe-based visual–inertial odometry using nonlinear optimization

算是基于滑窗的VIO的必读文章吧&#xff0c;很详细地说了边缘化~ paper: http://in.ruc.edu.cn/wp-content/uploads/2021/01/Keyframe-Based-Visual-Inertial-Odometry-Using-Nonlinear-Optimization.pdfhttp://in.ruc.edu.cn/wp-content/uploads/2021/01/Keyframe-Based-Vis…

ORB-SLAM2源码笔记(4)——帧Frame和关键帧KeyFrame

Frame类中的相机参数为static类型&#xff0c;表示所有Frame对象共享一份相机参数 特征点提取ExtractORB 在Frame类构造函数中调用成员变量mpORBextractorLeft和mpORBextractorRight的()运算符进行特征点提取. 畸变矫正前的左目特征点是mvKeys[i]. 畸变矫正后的左目特征点是m…

《UnityAPI.Keyframe关键帧》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Keyframe+inTangent+outTangent+立钻哥哥++OK++)

《UnityAPI.Keyframe关键帧》 版本 作者 参与者 完成日期 备注 UnityAPI_Keyframe_V01_1.0 严立钻 2020.06.28 #《UnityAPI.Keyframe关键帧》发布说明&#xff1a; “UnityAPI.Keyframe关键帧”是对UnityAPI中Keyframe关键帧类的剖析和拓展&…

ORB-SLAM2算法10之图像关键帧KeyFrame

文章目录 0 引言1 KeyFrame类1.1 构造函数1.2 成员函数1.3 关键帧之间共视图1.3.1 AddConnection1.3.2 UpdateBestCovisibles1.3.3 UpdateConnections1.3.4 EraseConnection1.3.5 SetBadFlag 1.4 地图点1.5 生成树 2 KeyFrame用途 0 引言 ORB-SLAM2算法7详细了解了System主类和…

CSS3 @keyframe动画的基本用法与常见错误用法

前言 随着CSS3的推出与普及&#xff0c;其各种属性开始被广泛使用。尤其是其动画功能&#xff0c;对于一些简单的动画实现&#xff0c;实在没必要用Javascript去实现&#xff0c;这是keyframes动画就派上了用场。今天来讲一下keyframes的一些基本的用法和常见坑。 【本文志于…

【微信小程序】动画入门keyframe

【微信小程序—动画工坊】动画入门 前情 需要了解的前置知识&#xff1a; 子代选择器基本布局 分析 可以将任务进行一下拆分。 如何让小球跑动起来&#xff1f; 通过keyframe创造动画函数&#xff0c;然后再通过animation绑定创造动画函数 keyframe的百分比代表动画的进度…

ORB-SLAM2 --- KeyFrame::UpdateConnections 函数

目录 一、函数作用 二、函数流程 三、code 四、函数解析 一、函数作用 更新关键帧之间的连接图。 更新变量 mConnectedKeyFrameWeights&#xff1a;当前关键帧的共视信息&#xff0c;记录当前关键帧共视关键帧的信息&#xff08;哪一帧和当前关键帧有共视&#xff0c;共视…

三谈属性动画——Keyframe以及ViewPropertyAnimator

Android动画和Transition系列文章 初识属性动画——使用Animator创建动画再谈属性动画——介绍以及自定义Interpolator插值器三谈属性动画——Keyframe以及ViewPropertyAnimator让View具有减速效果的动画——FlingAnimation让View具有弹性效果的动画——SpringAnimation让View…

ORB-SLAM2 --- KeyFrame::SetBadFlag函数

目录 1.函数作用 2.code 3.函数解析 1.函数作用 真正地执行删除关键帧的操作。 需要删除的是该关键帧和其他所有帧、地图点之间的连接关系。 2.code void KeyFrame::SetBadFlag() { // Step 1 首先处理一下删除不了的特殊情况{unique_lock<mutex> lock(mMutexConn…