Java流程控制03——选择结构

简介: Java流程控制03——选择结构

Java流程控制03——选择结构

本篇笔记简介0.预备知识——>1.if单选择结构——>2.if双选择结构—>3.if多选择结构——>4.嵌套的if结构——>5.switch多选择结构——>6.补充:case穿透

目录

0、预备知识

布尔表达式:

布尔表达式(Boolean expression)是一段代码声明,它最终只有true(真)和false(假)两个取值。

最简单的布尔表达式是等式(equality),这种布尔表达式用来测试一个值是否与另一个值相同。 例如:

2 == 4       ?  -------------->  false

1、if单选择结构

我们平常经常会面临选择,所以选择结构对于我们编程来说也是非常重要的,比如:

如果明天晴天,我们就一起去草场放风筝;

如图:

if(布尔表达式){
//如果布尔表达式为true将执行的语句
}

★if单选择结构:if语句对条件表达式进行一次判断,若判断为真,则执行下面的语句,否则跳过该语句。

实例助解:接收一个用户的输入,判断输入的是否为字符串"Liusu":

import java.util.Scanner;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//接收用户输入
System.out.print("请输入内容:");
String s = scanner.nextLine();
if (s.equals("Liusu")){
System.out.println("输入的是:"+s);
}
System.out.println("End");
scanner.close();
}

输出演示,如图:

注释:equals方法是用来进行字符串的比较的

2、if双选择结构

比如你去买键盘,键盘108元。如果你身上当时带有金额大于等于108元,那买键盘,否则,不买。(仅举例)

所以对于这样的需求用一个if就搞不定了,我们需要有两个判断,需要一个双选择结构,所以就有了if-else结构。

如图:

if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}

★if双选择结构:当条件表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。

实例助解:你去买键盘,键盘108元。如果你身上当时带有金额大于等于108元,那买键盘,否则,不买。

import java.util.Scanner;
public static void main(String[] args) {
  Scanner scanner = new Scanner(System.in);
  System.out.print("请输入x值:");
  int x = scanner.nextInt();
  if (x>=108){
    System.out.println("键盘");
  }else {
    System.out.println("余额正在加载中...");
  }
  scanner.close();
}

输出演示,如图:

3、if多选择结构

真实的情况还可能存在很多种,存在区间多级判断。在生活中我们很多时候的选择也不仅仅只有两个,所以我们需要一个多选择结构来处理这类问题!

如图:

if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
//如果布尔表达式 3的值为true执行代码
}else {
//如果以上布尔表达式都不为true执行代码
}

★if多选择结构:if 语句后面可以跟 else if…else 语句,可以判断多种情况。

★使用 if,else if,else 语句的时候,需要注意下面几点:

  • if 语句至多有 1 个 else 语句。
  • if 语句可以有若干个 else if 语句。
  • else if在else之前
  • 一个 else if 语句检测为 true,其他的 else if 、 else 语句都将跳过执行。

实例助解:简单的数值判断

public class Test {
   public static void main(String args[]){
      int x = 66;
      if( x == 22 ){
         System.out.print("x:22");
      }else if( x == 44 ){
         System.out.print("x:44");
      }else if( x == 66 ){
         System.out.print("x:66");
      }else{
         System.out.print("看来您的选择不在选项当中...");
      }
   }
}

输出演示,如图:

4、嵌套的if结构

ps:嵌套的 if…else 语句也是可以的。所有的流程控制语句都可以互相嵌套,互不影响!

if(布尔表达式 1){
如果布尔表达式 1的值为true执行代码
  if(布尔表达式 2){
  如果布尔表达式 2的值为true执行代码
  }
}

实例助解:判断x

    public static void main(String args[]){
        int x = 66;
        if( x > 22 ){
            System.out.println("x>22");
            if(x > 44){
                System.out.println("x>44");
            }
        }
    }

输出演示,如图:

5、switch多选择结构

多选择结构还有一个实现方式就是switch case 语句。

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

switch(expression){
    case value :
      //语句
      break; //可选
    case value :
      //语句
      break; //可选
      //case...
      default : //可选
          //语句
}
★switch case 语句有如下规则:
  • switch 语句中的变量类型可以是: byte、short、int 、char、字符串 String 类型。
  • switch 语句可以拥有多个 case 语句。
  • case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
ps:当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现
才会跳出 switch 语句。(break语句非必须)

关于switch中default:

  • switch 语句可以包含一个 default 分支------->最后一个分支(可以在任何位置,但建议在最后一个)。
  • default 在没有 case 语句的值和变量值相等的时候执行。
  • default 分支不需要 break 语句。

实例助解:

public static void main(String args[]){
char grade = 'C';
switch(grade)
{
  case 'A' :
    System.out.println("优秀");
    break;
  case 'B' :
  case 'C' :
    System.out.println("良好");
    break;
  case 'D' :
    System.out.println("及格");
    break;
  case 'F' :
    System.out.println("谢谢参与!加油!");
    break;
  default :
    System.out.println("您的等级已不在该范围内...");
}
  System.out.println("你的等级是 " + grade);
}

输出演示,如图:

6、补充:case穿透

ps:如果 case 语句块中没有 break 语句时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输

出。如果后续的 case 语句块有 break 语句则会跳出判断。

public static void main(String args[]){
int i = 4;
switch(i){
  case 0:
    System.out.println("0");
  case 1:
    System.out.println("1");
  case 2:
    System.out.println("2");
  case 3:
    System.out.println("3");
    case 4:
    System.out.println("4"); 
    case 5:
        System.out.println("5");
    break;
  default:
    System.out.println("default");
  } 
}

输出演示,如图:


作者:Code_流苏(一个喜欢古诗词和编程的Coder😊)

★喜欢的话,还请多多点赞与关注! 感谢支持!
笔记更新随个人学习进度而进行,欢迎评论交流学习!


目录
相关文章
|
25天前
|
缓存 监控 Java
Java线程池提交任务流程底层源码与源码解析
【11月更文挑战第30天】嘿,各位技术爱好者们,今天咱们来聊聊Java线程池提交任务的底层源码与源码解析。作为一个资深的Java开发者,我相信你一定对线程池并不陌生。线程池作为并发编程中的一大利器,其重要性不言而喻。今天,我将以对话的方式,带你一步步深入线程池的奥秘,从概述到功能点,再到背景和业务点,最后到底层原理和示例,让你对线程池有一个全新的认识。
52 12
|
26天前
|
JSON Java 程序员
Java|如何用一个统一结构接收成员名称不固定的数据
本文介绍了一种 Java 中如何用一个统一结构接收成员名称不固定的数据的方法。
26 3
|
1月前
|
小程序 前端开发 算法
|
1月前
|
Java API 开发者
Java如何实现企业微信审批流程
大家好,我是V哥。本文分享如何在企业微信中实现审批流程,通过调用企业微信的开放API完成。主要内容包括获取Access Token、创建审批模板、发起审批流程和查询审批结果。提供了一个Java示例代码,帮助开发者快速上手。希望对你有帮助,关注V哥爱编程,编码路上同行。
|
2月前
|
存储 算法 Java
🚀Java零基础-顺序结构详解 🚀
【10月更文挑战第11天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
39 6
|
2月前
|
SQL IDE Java
入门Cloud Toolkit:简化你的Java应用开发与部署流程
【10月更文挑战第19天】作为一名长期从事Java开发的程序员,我一直致力于寻找能够简化日常开发工作的工具。在众多工具中,阿里巴巴推出的Cloud Toolkit引起了我的注意。这款免费的插件旨在帮助开发者更轻松地进行开发、测试及部署工作,尤其是在与云服务交互时表现尤为出色。本文将从个人的角度出发,介绍Cloud Toolkit的基本功能及其使用技巧,希望能帮助初学者快速上手这款实用工具。
33 1
|
2月前
|
前端开发 安全 Java
java发布公告的实现流程
构建一个Java公告发布系统涉及到前端界面设计、后端业务逻辑处理、数据库设计与交互、安全性保障等多个环节。通过采用现代的开发框架和最佳实践,可以高效地开发出既安全又易于维护的系统。随着需求的增长,系统还可以进一步扩展,比如增加评论功能、通知订阅、多语言支持等。
51 1
|
2月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
59 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
2月前
|
运维 Cloud Native Java
Java项目部署的发展流程
本文介绍了四种不同的应用部署方式:传统部署、虚拟化部署、容器化部署和云原生部署。每种方式的特点、部署流程及优缺点进行了详细说明。传统部署直接在物理机上运行应用,存在资源利用率低和运维成本高的问题;虚拟化部署通过虚拟机实现资源隔离和复用,但有性能损失和单点故障风险;容器化部署则提供轻量级、可移植的应用环境,具备良好的隔离性和一致性;云原生部署结合了容器化和微服务架构,实现高效运维和灵活扩展。
Java项目部署的发展流程
|
4月前
|
Java
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决