当前位置: 首页 > news >正文

if选择结构分析

一、流程控制结构


(1)在Java中有3种流程控制结构:顺序结构、选择结构、循环结构。

(2)顺序结构:顺序结构是指程序从上向下依次执行每条语句的结构,中间没有任何的判断和跳转。

(3)选择结构:选择结构是根据条件判断的结果来选择执行不同的代码。选择结构可以细分为单分支结构、双分支结构和多分支结构。Java提供了if控制语句和switch语句来实现选择结构。

(4)循环结构:循环结构是根据判断条件来重复性地执行某段代码。Java提供了while语句、do-while语句、for语句来实现循环。JDK5.0新提供了增强for循环,可以更简单的方式来遍历数组和集合。


二、if选择结构


1、单分支if语句


语法格式:

     

  if(条件){
            语句
        }


执行规律:

1)对条件的结果进行判断。

2)如果条件的结果为true,执行大括号里的语句。

3)如果条件的结果为false,跳过大括号里的语句,执行if结构后面的语句。

注意事项:

1)条件的结果只能是布尔类型的值

2)如果条件后大括号中的语句只有一句,大括号可以省略不写,但建议写上。


2、双分支if语句


语法格式:

      

  if(条件){
            语句1
        }else{
            语句2
        }


执行规律:

1)对条件的结果进行判断。

2)如果条件的结果为true,执行语句1。

3)如果条件的结果为false,执行语句2。

注意事项:

1)else子句不能单独使用,它必须是if语句的一部分,与最近的if语句配对使用


3、多分支if语句


语法格式:

      

  if(条件1){
            语句1
        }else if(条件2){
            语句2
        }else if(条件3){
            语句3
        }
            ......
        }else{
            语句n
        }


执行规律:

1)对条件1的结果进行判断。

2)如果条件1的结果为true,执行语句1;如果条件1的结果为false,则判断条件2的结果

3)如果条件2的结果为true,执行语句2;如果条件2的结果为false,则判断条件3的结果

4)如果条件3........

5)如果所有条件都为false,则执行else里的语句n。

注意事项:

1)不论多分支if语句中有多少个条件,只会执行符合条件的一个,如果没有符合条件的,则执行else子句中的语句。

2)else if语句可以有多个。

3)else语句可以省略。

4)多分支if语句的各个条件排列是有顺序的,从上到下条件越来越宽松。

5)如果if语句或else子句中要执行的语句超过一条,则必须将这些语句用大括号括起来。

4、嵌套if控制语句


语法格式:

      

  if(条件1){
            if(条件2){
                语句1
            }else{
                语句2
            }
        }else{
            if(条件3){
                语句3
            }else{
                语句4
            }
        }


执行规律:

1)对条件1的结果进行判断。

2)如果条件1的结果为true,再对条件2的结果进行判断。如果条件2的结果为true,则执行语句1;否则,执行语句2。

3)如果条件1的结果为false,再对条件3的结果进行判断。如果条件3的结果为true,则执行语句3;否则,执行语句4。

注意事项:

1)else子句不能单独使用,它必须是if语句的一部分,与最近的if语句配对使用

三、equals和Math.random()用法


1、equals用法


需求:比较两个字符串的内容是否相同

用法:boolean result = 字符串1.equals(字符串2);

含义:使用字符串1.equals(字符串2)来比较字符串1和字符串2的内容是否相同,若相等,返回true;否则返回false.

例子:

public class Demo01 {
 
    public static void main(String[] args) {
        
        String str1 = "Hello";
        String str2 = "hello";
        
        boolean result1 =str1.equals(str2);
        System.out.println("str1和str2内容相同:"+result1);
        
        boolean result2 = str1.equals("Hello");
        System.out.println("str1里的内容和Hello相同:"+result2);
    }
}


2、随机数Math.random()用法


        获取随机数:固定写法
        Math.random():随机返回一个[0.0,1.0)的double类型的数据

        double num1 =Math.random();
        System.out.println(num1);
        Math.random()*10:随机返回一个[0.0,10.0)的double类型的数据

        double num2 =Math.random()*10;
        System.out.println(num2);
        (int)Math.random()*10:随机返回一个[0,10)的int类型的数据

        int num3=(int)(Math.random()*10);
        System.out.println(num3);
        (int)(Math.random()*12+19):随机获取一个[19,31)之间的int类型的数据

        int num4=(int)(Math.random()*12+19);
        System.out.println(num4);
       (int)(Math.random()*(num2-num1)+num1):随机获取一个[num1,num2)之间的int类型的

        数据,num1<num2

实例:

    

public static void main(String[] args) {
        /*
         * 抽奖规则:会员号的百位数字等于产生的随机数字即为幸运会员
         */
        
        //创建Scanner类对象
        Scanner sc = new Scanner(System.in);
        
        //获取会员卡号
        System.out.println("请输入你的4位数字会员卡号:");
        int cardId = sc.nextInt();
        System.out.println("会员卡号:"+cardId);
        
        //获取会员卡号上的百位数字
        int baiWei = cardId/100%10;
        
        //随机获取一个[0,10)之间整数
        int num = (int)(Math.random()*10);
        
        //判断:如果会员卡号的百位数字等于随机数,则为幸运会员
        if(baiWei==num){
            System.out.println("恭喜你,称为幸运会员");
        }else{
            System.out.println("很遗憾,没能成为幸运会员,继续努力.....");
        }
        
        System.out.println("程序执行完毕");
        
 
    }


 

相关文章:

  • 【线性代数】MIT Linear Algebra Lecture 2: Elimination with matrices
  • 面试-测试软件Selenium
  • python--转换wrf输出的风场数据为网页可视化的json格式
  • 单细胞测序原理10X UMI Barcode
  • Rust-FFI复杂参数传递处理方式2--字符和字符串类型
  • A40I工控主板(SBC-X40I)CAN接口测试
  • Nginx - mac常用指令总结
  • 首先要学习什么:Docker 还是 Kubernetes?
  • springboot毕设项目兴趣学习平台02hz7(java+VUE+Mybatis+Maven+Mysql)
  • webpack5 - 之 开发环境的 服务器设置、sourcemap 配置、环境拆分( 清理上传打包缓存)
  • shell编程2-shell基础知识
  • 猿创征文 | 专做药品生产研发的程序员
  • 十三、【分布式微服务企业快速架构】SpringCloud分布式、微服务、云架构之Eclipse 创建 XML 文件
  • app 更新 对aso是否有影响
  • GitKraken Pro安装
  • 【node学习】协程
  • exif信息对照
  • JavaScript 基础知识 - 入门篇(一)
  • JavaScript设计模式与开发实践系列之策略模式
  • LintCode 31. partitionArray 数组划分
  • Python爬虫--- 1.3 BS4库的解析器
  • Solarized Scheme
  • Spring Cloud中负载均衡器概览
  • 工作中总结前端开发流程--vue项目
  • 机器学习中为什么要做归一化normalization
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 如何编写一个可升级的智能合约
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 首页查询功能的一次实现过程
  • 微信小程序填坑清单
  • 一个SAP顾问在美国的这些年
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 大数据全解:定义、价值及挑战
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (+4)2.2UML建模图
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (多级缓存)缓存同步
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (九十四)函数和二维数组
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)Linq学习笔记
  • (转)LINQ之路
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .net 7 上传文件踩坑
  • .net core Swagger 过滤部分Api
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET委托:一个关于C#的睡前故事
  • @Resource和@Autowired的区别
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • []error LNK2001: unresolved external symbol _m
  • [2023-年度总结]凡是过往,皆为序章
  • [bzoj1912]异象石(set)