Java入门基础知识第五课(超基础,超仔细)——选择结构

今天主要讲一下if选择结构以及如何利用Math.random()来获取随机数。

流程控制:用来控制代码的执行顺序  

顺序结构:代码从上往下按照顺序依次执行

选择结构:根据条件选择性的执行某部分代码

循环结构:反复执行一段代码

一、if选择结构

1、单分支if选择结构

          语法:

          if(条件){        

            //代码块

          }


        规律:

                 判断条件:

                 如果条件为true,执行{}里的代码块,代码块执行完,继续往下执行if结构后面的代码,

                 如果条件为false,则跳过if选择结构,继续往下执行if结构后面的代码
       

        注意:

                1)条件必须是布尔值,不管条件写的多么简单还是多么复杂,最终结果都只能是true或

者false,所以条件可以是关系运算符或者三目运算符的运算结果

                 2)当{}中的代码只有一条语句的时候,{}可以省略不写,在这里,不建议省略

   2、双分支if选择结构

         语法:    

         if(条件){

               //代码块1  

          }else{

                //代码块2

        }
       

         规律:

                判断条件:

                如果条件为true,执行()后面{}里的代码块1,代码块1执行完,继续往下执行if-else结构后面的代码

                 如果条件为false,执行else后面{}里的代码块2,代码块2执行完,继续往下执行if-else结构构面的代码
       

         注意:

         1.条件必须是布尔值,不管条件写的多么简单还是多么复杂,最终结果都只能是true或

者false,所以条件可以是关系运算符或者三目运算符的运算结果

          2.当条件()后面{}中的代码只有一条语句的时候,{}可以省略不写,在这里,不建议省略

3、多分支if选择结构

        语法:    

        if(条件1){

        //代码块1;

        }else if(条件2){

        //代码块2;

        }else if(条件3){

        //代码块3;

        }....

        }else if(条件n){

        //代码块n;

        }else{          

        //代码块m;         

        }
        

        规律:
            

        判断条件1:
                

        如果条件1为true,执行代码块1,执行完代码块1,结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码

        如果条件1为false,继续往下判断条件2:
                    

        如果条件2为true,执行代码块2,执行完代码块2,结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码
                    

        如果条件2为false,继续判断条件3:                    

         .........
                      

        如果条件n-1为false,继续判断条件n:
                            

        如果条件n为true,执行代码块n,执行完代码块n,结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码
                            

        如果条件n为false,则执行代码块m,执行完代码m,结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码
            
        注意:  

        1.从上往下依次判断条件,满足条件就执行对应{}里的代码,执行完就结束整个if-else-if结构   

        2.如果所有的条件都不满足,则执行else{}里的代码        

        3.else也可以省略不写,当所有的条件都不满足,又没有else代码的时候,整个if-else-if结构都不执行   

        4.如果条件的取值范围只有一边,那么条件排列顺序不能任意排列,需要注意顺序,从上往下,条件由严格到宽松

4、嵌套if选择结构

        语法:    

        if(条件1){      

        //代码块1

         if(条件2){      

        //代码块2  

        }else{    

         //代码块3

         }      

        }else{

         //代码块4

        if(条件3){

        //代码块5

        }else{

        //代码块6       

        }            

        }     

规律:          

判断条件1:    

        如果条件1为true,执行代码块1,继续判断条件2:         

        如果条件2为true,执行代码块3,执行完代码块3,结束整个嵌套if结构,继续执行嵌套if结构后面的代码       

        如果条件2为false,执行代码块4,执行完代码块4,结束整个嵌套if结构,继续执行嵌套if结构后面的代码    

        如果条件1为false,执行代码块4,继续判断条件3:       

        如果条件3为true,执行代码块5,执行完代码块5,结束整个嵌套if结构,继续执行嵌套if结构后面的代码     

        如果条件3为false,执行代码块6,执行完代码块6,结束整个嵌套if结构,继续执行嵌套if结构后面的代码

        注意: 

        1.不管if结构怎么嵌套,嵌套多少层,只需要严格按照If结构的执行规律做就可以了,满足条件就进入{}中执行对应代码,不满足条件,就不能进入{}中执行对应代码

        2.理论上,if结构可以任意层次的嵌套(想嵌套多少层就嵌套多少层),一般嵌套不要超过3层,超过3层,代码的可读性不好

二、switch选择结构

        语法:

        switch(表达式){

        case 值1:

        代码块1;

        break;

        case 值2:

        代码块2;

        break;

        .......

        case 值n:

        代码块n;

        break;

        default:

        代码块m;

        break;

        }

        执行规律:

        拿表达式的结果与case后面的值进行匹配,匹配上哪一个case值就执行对应的代码块,执行完代码块执行break语句,结束整个switch结构,继续往下执行switch结构之后的代码

        如果所有的case值与表达式的值都不匹配。那么执行default里面的代码块,执行完代码块执行break语句,结束整个switch结构,继续往下执行switch结构之后的代码

        注意:

        1.表达式的值可以是int、short、byte、char、枚举类型、String(JDK1.7版本及以后版本可以使用)

        2.case后面的值不能重复

        3.当表达式的值与所有case值不匹配时,执行default里的语句。default语句可以写在任意位置,一般写在末尾位置,default语句也可以省略不写,如果省略不写,表达式的值与所有case值又不匹配,那么真个switch结构就不会执行

        4.break的作用是结束整个switch语句,可以省略不写,如果省略不写,会造成“case穿透”现象。该现象可以合理使用。

        5.switch选择结构的表达式值是一个固定的值,所以switch选择结构只能处理多分支条件是等值的情况,多重if选择结构,既可以处理条件为等值的情况,也可以处理条件是一个范围的情况

三、获取随机数   

Math.random():随机返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。

double result1 =Math.random();System.out.println("result1:"+result1);

Math.random()*10:随机返回一个带正号的double值,该值大于等于0.0,且小于10.0

double result2 =Math.random()*10;System.out.println("result2:"+result2);

(int)(Math.random()*10):随机返回一个带正号的int值,该值大于等于0,且小于10——随机获取0-9之间的整数

int result3 = (int)(Math.random()*10);System.out.println("result3:"+result3);

(int)(Math.random()*(num2-num1)+num1):随机生成一个[num1,num2)(num2>num1)之间的int类型的整数        

随机生成一个[29,41)之间的int类型的数

int result4 = (int)(Math.random()*(41-29)+29);System.out.print(result4+" ");

    
  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/797309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试下的AI之路(4)

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

实时计算平台设计方案:913-基于100G光口的DSP+FPGA实时计算平台

基于100G光口的DSPFPGA实时计算平台 一、产品概述 基于以太网接口的实时数据智能计算一直应用于互联网、网络安全、大数据交换的场景。以DSPFPGA的方案,体现了基于硬件计算的独特性能,区别于X86GPU的计算方案,保留了高带宽特性&…

Ceph学习 - 1.存储知识

文章目录 1.存储基础1.1 基础知识1.1.1 存储基础1.1.2 存储使用 1.2 文件系统1.2.1 简介1.2.2 数据存储1.2.3 存储应用的基本方式1.2.4 文件存储 1.3 小结 1.存储基础 学习目标:这一节,我们从基础知识、文件系统、小节三个方面来学习。 1.1 基础知识 1.…

UART设计

一、UART通信简介 通用异步收发器, 特点:串行、异步、全双工通信 优点:通信线路简单,传输距离远 缺点:传输速度慢 数据传输速率:波特率(单位:baud,波特) …

如何高效学习Python编程语言

理解Python的应用场景 不同的编程语言有不同的发展历史和应用场景,了解Python主要应用在哪些领域对于学习它会有很大帮助。Python最初是一种通用脚本语言,主要用于系统级任务自动化。随着时间的推移,它逐步成为数据处理、科学计算、Web开发、自动化运维等众多领域的主要编程语…

Navicat设置mysql权限

新建用户: 注意:如果不生效执行刷新命令:FLUSH PRIVILEGES; 执行后再重新打开查看; 查询权限命令:1234为新建的用户名,localhost为访问的地址 SHOW GRANTS FOR 1234localhost;如果服务器设置服务器权限后可能会出现权…

【算法】求一个数组中三个数乘积最大值 - 线性扫描

题目 给定一个数组,找出数组中乘积最大的三个数。 原理 一个数组中最大值只有两种情况:两个最小的负数和一个最大的正数 & 三个最大的正数。线性扫描找出这五个数字,即可求出最大值。 代码 public static void main(String[] args) {…

潜伏三年,核弹级危机一触即发,亚信安全深度分析XZ Utils后门事件

2024年3月29日星期五上午8点,有研究人员称xz/liblzma中的后门导致SSH服务器内存泄露,使得SSH服务异常(https://www.openwall.com/lists/oss-security/2024/03/29/4)。github中“xz”压缩工具主要由Larhzu和Jia Tan共同负责维护&am…

QToolTip设置背景色没有生效原因与解决方法

设置全局QToolTip的背景色,有两种方法: 1. 样式表设置; 2. QToolTip::setPalette(pal);调色板设置; QPalette pal QToolTip::palette(); //修改背景色 pal.setColor(QPalette::Inactive,QPalette::ToolTipBase,QColor(240, 25…

力扣25. K 个一组翻转链表

Problem: 25. K 个一组翻转链表 文章目录 题目描述思路复杂度Code 题目描述 思路 1.创建虚拟头节点dummy并将其next指针指向head,创建指针pre、end均指向dummy; 2.编写反转单链表的函数reverse 3.当end -> next 不为空时: 3.1.每次k个一组…

Java强连通分量知识点(含面试大厂题和源码)

在大厂面试中,与拓扑排序相关的问题通常涉及到对图的处理和算法设计。以下是三道可能出现在大厂面试中的编程题目,以及相应的Java源码实现。 题目 1:课程依赖关系 描述: 给定一个课程列表和课程之间的依赖关系,为所有…

Bigtable [OSDI‘06] 论文阅读笔记

原论文:Bigtable: A Distributed Storage System for Structured Data (OSDI’06) 1. Introduction Bigtable 是一种用于管理结构化数据的分布式存储系统,可扩展到非常大的规模:数千台服务器上的数据量可达 PB 级别,同时保证可靠…

学习java第三十五

Spring事务传播行为: PROPAGATION_REQUIRED(默认) 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中 PROPAGATION_SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行 P…

golang语言和JAVA对比

引言: 在当今的软件开发领域,有许多编程语言供开发人员选择。其中,Golang和Java是两种备受开发者青睐的语言。本文将探讨Golang和Java之间的比较和对比,分析它们在语言特性、性能、平台支持、社区和生态系统、开发效率和可维护性等方面的异同。 一、语言特性和性能 Golang…

二维相位解包理论算法和软件【全文翻译-路径跟踪方法(4.1)】

4.1 引言 在第 2 章中我们注意到,从一个像素点开始计算的解包相位可能取决于积分路径。如果我们沿着两条不同的路径从一个像素点到另一个像素点,我们可能会得到两个不同的解包裹相位答案。我们发现,这些不一致是由称为残差的点状结构造成的。残差位于由四个像素组成的 &quo…

加密算法(二)

1、SHA-256加密算法: package com.arithmetic.encryption; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; //使用java.security.MessageDigest类来进行SHA-256摘要的计算。 //通过getInstance("SHA-256")方法获取…

阿里巴巴拍立淘API新功能揭秘:图片秒搜商品,实现智能化个性化购物新体验

在数字化快速发展的今天,智能化和个性化已经成为购物体验中不可或缺的元素。为了满足消费者日益增长的购物需求,阿里巴巴中国站不断推陈出新,其中拍立淘API的新功能——图片秒搜商品,无疑为智能化个性化购物体验开创了新的篇章。 …

js怎样判断status

相信大家都知道Switch开关吧,他有两种状态,通常用1/2表示,开启时为true,关闭时为false,那么我们该怎样判断他是否为开启还是关闭你? 我们可以声明一个变量,让它等于status,判断它是否等于1/2&…

【机器学习入门】使用YOLO模型进行物体检测

系列文章目录 第1章 专家系统 第2章 决策树 第3章 神经元和感知机 识别手写数字——感知机 第4章 线性回归 第5章 逻辑斯蒂回归和分类 第5章 支持向量机 第6章 人工神经网络(一) 第6章 人工神经网络(二) 卷积和池化 第6章 使用pytorch进行手写数字识别 文章目录 系列文章目录前…

GitHub与Namecheap域名绑定解除指南:删除CNAME文件

github namecheap 域名到期怎么解绑 什么是CNAME文件? CNAME文件是位于你的username.github.io仓库根目录中的一个简单文本文件,它指明了你的GitHub Pages站点要绑定的自定义域名。GitHub通过读取这个文件中的内容来配置DNS解析,从而将你的自…