选择结构的使用

article/2025/4/23 2:57:08

一、掌握if结构语句

二、掌握switch分支结构

三、两种结构语句的比较

学习结构之前首先要明白为什么要学习结构,结构有什么作用,有哪些结构,

首先我们要明白java代码中,程序运行的原理是从上到下一行一行运行的,如果你是先改变变量值,然后在定义一个变量,这时候就会出现编译报错,计算机先编译的是改变变量值这一行代码再定义一个变量,所以代码的规范就需要用到流程控制,用来控制程序中各个语句的执行顺序。

在我们学习中,先接触的就是选择结构,选择执行这一行代码还是选择执行另外一行代码,

还有下一篇文章中的循环结构,多次执行一行或者多行代码。首先要先了解选择结构。

一、if结构

①、单重if结构

单重if结构,也就是基本的if选择结构,

  if(条件){

        选择结构体;

};

这就是基本的if选择结构,当满足()里面的条件时,程序就会运行选择结构体里面的内容

当不满足时,就会跳过这行代码,执行下一行代码。

②、if-else选择结构

这是在单重if语句中添加了一个else语句,意思就是当满足if中的条件时,运行的是if结构体里面的内容,不满足是就运行else里面的内容,这时候就会出现两个选择了,if  --   else  。

③、多重if结构

多重if结构的意思就是多次运用选择结构来执行代码的运行,这也是选择结构的重点

public static void main(String[] args){int a = 1,b = 2,c = 3;if(a<0)if(b<0) c = 10;else c = 20;System.out.println(c);

在这行代码中就出现多次的if结构,这就是多重if结构,

前面说到if结构的创立,需要有几个因素

        一、if的判断条件

        二、if的执行语句,就是选择结构体;

        三、作用域,也就是这对大括号 { } ;

在这里第一行的if结构,只出现了if的判断条件,没有作用域也没有执行语句,

这样是可以运行的,if结构可以省略执行语句,也可以省略作用域,因为是会默认一个作用域,

当程序满足选择结构的判断条件时,会执行作用域里面的内容,当作用域里面没有执行语句时,计算机也不会编译报错,会自动跳过继续运行下一行代码,所以可以是省略执行语句的。

作用域 { } 的作用是表示,在执行if语句中,{ }里面的内容都会执行,不管里面有多少行代码,如果不满足if的判断条件,就会跳过这个作用域,不执行选择结构体。在这里{ }省略了也是可以,计算机会默认下一行的代码就是if的结构体,就是会有一个隐形的作用域,只作用在下一行代码,下面的代码就不是其结构体了。但是在这里因为if - else是同一结构代码也就是这两行代码可以说是同一行代码所以这里的作用域就是在这两行,运行的结果也是为3;

④、嵌套if选择结构

嵌套if结构就是在if结构里面继续使用if结构

嵌套if控制语句可以通过外层语句和内层语句的协作,增强程序的灵活性。

其代码格式如下:

if(条件1){if(条件2){代码块1;}else{代码块2;}
}else{代码块3;
}

二、switch选择结构

switch选择结果语法:

 看着switch结构复杂,啰嗦,这一是其缺点,特点就是switch为等值判断,

即case  后添加的为常量或者一个变量,不是一个表达式,或者一个判断语句

①、break的作用就是执行完每个case后跳出这个选择结构,在这里可以不写break,但是会出现当表达式里面的内容等于case2的时候,程序会执行到case2里面的语句,然后不会跳出,就行执行case3和default里面的执行语句,这个时候不会考虑表达式满不满足case3和default,

②、case后面的常量值也不能相同,但是case的执行语句可以都相同。

③、default块顺序可以变动,但是要注意其执行顺序,通常default块放在末尾,表示这个选择结构结束,也可以省略不写,在这里如果default放在case1的前面,程序运行不会报错,但是会出现第①种情况,运行完default里面的语句之后,会继续运行case123的语句,因为没有break;

三、两种结构比较

相同点:

        都是用来处理多分支条件的结构

不同点:

        switch只能处理等值条件判断的情况,就是说case后面只能是一个数或者字符串,不能为判断条件

        if结构美玉哦switch结构的限制,特别适合某个变量处于某个区间时的情况

if选择结构,包括以下形式:

  1.         基本if选择结构:可以处理单一或组合条件的情况
  2.         if--else选择结构:可以处理简单的条件分支情况
  3.         多重if选择结构:可以处理分段的条件分支情况
  4.         嵌套if选择结构:可以处理复杂的条件分支情况

switch选择结构

        多重分支并且条件判断是等值判断的情况


http://chatgpt.dhexx.cn/article/CbprwTwh.shtml

相关文章

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…

【视觉SLAM】Fast Relocalisation and Loop Closing in Keyframe-Based SLAM

See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/263621033 Article in Proceedings - IEEE International Conference on Robotics and Automation June 2014 DOI: 10.1109/ICRA.2014.6906953 先读Abstrac…

Android属性动画 Keyframe

转载请标明出处&#xff1a;http://blog.csdn.net/zhaoyanjun6/article/details/118963313 本文出自【赵彦军的博客】 文章目录 KeyFrame实战 KeyFrame KeyFrame 主要用于自定义控制动画速率&#xff0c;KeyFrame 直译过来就是关键帧。 而关键帧这个概念是从动画里学来的&…

ORB-SLAM2代码详解05: 关键帧KeyFrame

pdf版本笔记的下载地址: ORB-SLAM2代码详解05_关键帧KeyFrame,排版更美观一点,这个网站的默认排版太丑了&#xff08;访问密码&#xff1a;3834&#xff09; ORB-SLAM2代码详解05: 关键帧KeyFrame 各成员函数/变量共视图: mConnectedKeyFrameWeights基于对地图点的观测重新构造…

@keyframes详解

一、transform 和keyframes动画的区别&#xff1a; keyframes动画是循环的&#xff0c;而transform 只执行一遍. 二、keyframes CSS3中添加的新属性animation是用来为元素实现动画效果的&#xff0c;但是animation无法单独担当起实现动画的效果。承载动画的另一个属性——keyfr…

KeyFrame类

关键帧类主要是进行Covisbility Graph&#xff0c; Essential&#xff0c;Spanning Tree 三个图的维护&#xff0c;更新。 其中不涉及关键帧的筛选策略问题&#xff0c;只设置了剔除某关键帧和剔除关键帧后如何更新图的方法。总体来说&#xff0c;不难理解。 PS:本文设计多线程…

自定义控件三部曲之动画篇(八)——PropertyValuesHolder与Keyframe

前言&#xff1a;只有比牛人跑的更快&#xff0c;才有可能追上他的脚步。 相关文章&#xff1a; 《Android自定义控件三部曲文章索引》:http://blog.csdn.net/harvic880925/article/details/50995268 前几篇给大家讲了ValueAnimator、ObjectAnimator的知识&#xff0c;讲解了…

ORB-SLAM2从理论到代码实现(十四):KeyFrame类

1. 原理分析 KeyFrame为关键帧&#xff0c;关键帧之所以存在是因为优化需要&#xff0c;所以KeyFrame的几乎所有内容都是位优化服务的。该类中的函数较多&#xff0c;我们需要归类梳理一下&#xff0c;明白其功能原理&#xff0c;才能真正弄懂它的内容。 图优化需要构建节点和…

css基础(九)--keyframe

33.keyframe 关键帧&#xff0c;类似于flash中的关键帧&#xff0c;以keyframes开头紧跟着动画名称加上花括号&#xff5b;。。。&#xff5d;&#xff0c;括号中表示不同时间段样式规则 keyframes changecolor{ 0%{ background: red; } 100%{ background: green; } } 样式规…

windows10 企业版 ltsc系统的激活

具体步骤参考下面的网址内容&#xff1a; https://www.landiannews.com/archives/51131.html