Java流程控制之选择结构
作者:Code_流苏 发布时间:2021-10-24 08:12:50
布尔表达式:
布尔表达式(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结构
注意:嵌套的 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
语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
注意:当变量的值与 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穿透
如果 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");
}
}
输出演示,如图:
来源:https://blog.csdn.net/qq_51646682/article/details/121885460


猜你喜欢
- 本文以eclipse4.7安装sts3.9.0为例,解决报错An error occurred while collecting items
- 本文实例讲述了C#邮件定时群发工具Atilia用法。分享给大家供大家参考。具体如下:一、Atilia可以做什么Atilia是一个基于命令行的
- private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAd
- 在网上很多关于dubbo异常统一处理的博文,90%都是抄来抄去。大多都是先上一段dubbo中对于异常的统一处理的原码,然后说一堆的(甚至有1
- 很多时候我们复制一个对象实例A到实例B,在用实例B去做其他事情的时候,会对实例B进行修改,为保证对B的修改不会影响到A的正常使用,就需要使用
- 本文实例讲述了Android利用BitMap获得图片像素数据的方法。分享给大家供大家参考,具体如下:网上看到的参考是:int[] pixel
- 拖延症最可怕的地方就是:就算自己这边没有拖延,但对方也会拖延,进而导致自己这边也开始拖延起来!现在这个项目我这边已经是完工了,但是对方迟迟没
- 这里给大家带来的是动态webservice调用接口并读取解析返回结果的具体示例,非常的简单,注释也很详细,小伙伴们可以参考下。using S
- Overview在今天的开发学习中,我遇到了一个需求是在App的flash页面添加bing每日一图。这些都简单,但是当我获取到了图片的Url
- MainActivity.java package com.zhang.showPhoto;import android.app.Actio
- 引导语本小节和大家一起来看看 CountDownLatch 和 Atomic 打头的原子操作类,CountDownLatch 的源码非常少,
- SQLite 介绍SQLite,是一款轻型的数据库,用于本地的数据储存。先说说优点,它占用资源非常的低,在嵌入式设备中需要几百K的内存就够了
- 当我们第一次下载QQ并且打开的时候,会有一个新手引导,引导是几张图片,再加上一些文字说明,向右滑动,直到结束,今天一大早起来研究了一下关于此
- CSV是一种通用的、相对简单的文件格式,最广泛的应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的。那么,C#如何读取
- maven-compiler-plugin编译Java源码,一般只需设置编译的jdk版本<plugin> <g
- Spark的算子的分类从大方向来说,Spark 算子大致可以分为以下两类:1)Transformation 变换/转换算子:这种变换并不触发
- 👉实践过程😜常用属性因为Seekbar继承自ProgressBar,所以ProgressBar支持的XML属性SeekBar都适用。【and
- 本文实例讲述了Java模拟死锁发生之演绎哲学家进餐问题。分享给大家供大家参考,具体如下:一 点睛常见的死锁形式:当线程1已经占据资源R1,并
- 本文实例为大家分享了Unity创建平铺网格地图的具体代码,供大家参考,具体内容如下创建预制件先拖进场景,再从层级拖回资源选中源图像文件,设置
- 这篇文章主要介绍了Spring @Transactional注解失效解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的