首页 > 编程语言 >Java基础复习之选择结构使用思路

Java基础复习之选择结构使用思路

时间:2024-01-22 14:01:55浏览次数:55  
标签:case ... Java 复习 代码 else break 思路 true

Java基础复习之选择结构使用思路


目录

目录


一、Java提供的三种选择结构

  1. ifif ... elseif ... else if ... else
  2. 三元运算符
  3. switch ... caseswitch ... case ... default

二、三种选择结构的使用结构

如下condition是指所有返回值为boolean(布尔型)的语句均可;

(一)关于if ... else的三种使用结构

if (condition) {
  // 条件为true时执行的代码块
}
if (condition) {
  // 条件为true时执行的代码块
} else {
  // 条件为false时要执行的代码块
}
if (condition1) {
  // 条件1为true,则要执行的代码块,不管后续条件是否为true,后续代码不在执行。
} else if (condition2) {
  // 条件1为false,条件2为true,则要执行的代码块,不管后续条件是否为true,后续代码不在执行。
} else if (condition3) {
  // 条件1、2为false,条件3为true,则要执行的代码块,不管后续条件是否为true,后续代码不在执行。
  // ...
} else {
  // 上述条件均为false时要执行的代码块,不需要else也可以直接去掉,允许没有else的结构。
}

(二)三元运算符

三元运算符使用的主要目的是简化if ... else结构。

variable = (condition) ? expressionTrue :  expressionFalse;

// 上下两者是等价的。

if (condition) {
  // expressionTrue
} else {
  // expressionFalse
}

举例:

int z = 10;
boolean a = z < 30 ? true : false;
System.out.println(a);

打印结果为true

知识点:三元运算符可以多层嵌套。

variable = (condition) ?  (condition) ? expressionTrue :  expressionFalse :  expressionFalse;
int z = 10;
boolean b = z < 5 ? true : (z < 30 ? true : false);
System.out.println(b);

打印结果为true(思考一下为什么?)

知识点:三元运算符有返回结果,且expressionTrueexpressionFalse的返回结果类型要相同。错误举例如下:

image-20240122112819730

知识点:三元运算符有返回结果,且一定要被接收或用到。

image-20240122113226284

知识点:三元运算符的expressionTrueexpressionFalse仅只能是一行代码,且两者该行代码的返回值要相同。

image-20240122113601415

三元运算符缺点:

使用三元运算符代码的可读性有所降低,三元运算符相比if ... else结构使用局限性较大。

(三)关于switch ... case的两种使用结构

使用switch + break语句从多个要执行的代码块中选择一个执行。

switch(expression) {
  case x:
    // 待执行代码块
    break;
  case y:
    // 待执行代码块
    break;
  case z:
    // 待执行代码块
    break;
}
switch(expression) {
  case x:
    // 待执行代码块
    break;
  case y:
    // 待执行代码块
    break;
  default:
    // 待执行代码块
}

工作原理:

  • switch 表达式计算一次
  • case 将表达式的值与每种情况的值进行比较
  • 如果存在匹配项,则执行关联的代码块
  • breakdefault 关键字是可选的

img

举例:

int day = 4;
switch (day) {
  case 1:
    System.out.println("Monday");
    break;
  case 2:
    System.out.println("Tuesday");
    break;
  case 3:
    System.out.println("Wednesday");
    break;
  case 4:
    System.out.println("Thursday");
    break;
  case 5:
    System.out.println("Friday");
    break;
  case 6:
    System.out.println("Saturday");
    break;
  case 7:
    System.out.println("Sunday");
    break;
}
// 输出 "Thursday" (day 4)

注意:不写break,会存在case穿透问题。

default 关键字指定在没有大小写匹配时默认要运行的一些代码:

int day = 4;
switch (day) {
  case 6:
    System.out.println("Today is Saturday");
    break;
  case 7:
    System.out.println("Today is Sunday");
    break;
  default:
    System.out.println("Looking forward to the Weekend");
}
// 输出 "Looking forward to the Weekend"

三、选择结构使用思路

理论上if-else选择结构和switch选择结构是可以等价转换的,但是其各自都有各自更易的使用场景。

当带判断条件是某一个连续的值范围时,例如:2 <= x <= 5内的值,常常选择if-else选择结构。

当带判断条件是某一个间断已知的值范围时,例如:2,3,4,5内的确定值,常常选择switch选择结构。

标签:case,...,Java,复习,代码,else,break,思路,true
From: https://www.cnblogs.com/zhao-XH/p/17979899

相关文章

  • Java开发者的Golang进修指南:从0->1带你实现协程池
    在Java编程中,为了降低开销和优化程序的效率,我们常常使用线程池来管理线程的创建和销毁,并尽量复用已创建的对象。这样做不仅可以提高程序的运行效率,还能减少垃圾回收器对对象的回收次数。在Golang中,我们知道协程(goroutine)由于其体积小且效率高,在高并发场景中扮演着重要的角色。然......
  • 使用Javamail接收imaps协议的邮件
    网上的消息不能说大多,只能说基本都过时了,连imap和imaps都不分了本文基于apache-james项目搭建的邮件服务器,其他邮件服务器仅供参考首先是依赖,这里需要引入两个依赖,如下<dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId>......
  • G2303、G2318期末复习习题册第五章解答(元旦假期部分)
    ......
  • G2303、G2318期末复习习题册第五章解答(剩余部分)
    ......
  • 到底什么样的 Java 项目用 Solon 好???
    什么样的Java项目用Solon好就像华为讲的,不要因为爱国而特意买华为手机。Solon也是,有需要就用不需要就跳过(按正常的需求选择):信创需要国产化,应该用Solon或者SolonCloud(有案例)军工项目要国产化,应该用Solon或者SolonCloud(有案例)嵌入式设备,内存有限,算力差,可以用Solo......
  • JavaScript 中的展开运算符是什么?
    展开运算符(SpreadOperator)是JavaScript中的一种语法,用于将可迭代对象(如数组或字符串)展开为独立的元素。它使用三个连续的点号(...)作为操作符。展开运算符可以在多种情况下使用,包括数组、对象和函数调用等。下面是一些展开运算符的用法示例:1:展开数组:使用展开运算符可以将一......
  • Java 如何将Excel转换为TXT文本格式
    TXT文件是一种非常简单、通用且易于处理的文本格式。在处理大规模数据时,将Excel转为TXT纯文本文件可以提高处理效率。此外,许多编程语言和数据处理工具都有内置的函数和库来读取和处理TXT文件,因此将Excel文件转换为TXT还可以简化数据导入过程。本文将介绍如何使用Java将Excel转为TX......
  • [转]一篇搞懂javascript正则表达式
    原文地址:一篇搞懂javascript正则表达式-知乎最近在看vue源码的时候发现一个令人头疼的问题,就是正则表达式,在此之前我对正则只有一知半解,没有深入了解,所以看到正则高级写法都不知是什么含义,哎...,所以就去查看相关资料和博主写的,特意整理记录一下学习的过程并用通俗易懂的文章分......
  • html,css,javaSript
    html,css,javaSript1.认识结构:对应的是HTML语言表现:对应的是CSS语言行为:对应的是JavaScript语言2.标签标题:h1-h6横线效果:hr字体:font(face,color,size)换行br段落p加粗b斜体i下划线u文本居中center图片img(src,height,width)音频audio(src,controls)视频vide......
  • java实体类转化geojson的工具类
    1.用到的技术、工具:反射+geotools2.代码实现packageorg.jeecg.modules.web.util.geoutils;importcn.hutool.core.util.ReflectUtil;importcn.hutool.core.util.StrUtil;importcn.hutool.json.JSONArray;importcn.hutool.json.JSONObject;importcn.hutool.json.JSON......