java 分支控制语句

news2025/1/15 16:35:18

在程序中,程序运行的流程控制决定程序是如何执行的。

顺序控制

介绍: 程序从上到下的逐行的执行,中间没有任何判断和跳转。

使用:java中定义变量时,采用合法的前向引用。如:

public class Test{
	int num1 = 12;
	int num2 = num1 + 2;
	System.out.println(num2);

	// 错误写法
	int num2 = num1 + 2;    
	int num1 = 12;
}      

分支控制(if, else,switch)

介绍:让程序有选择的执行,分支控制有三种

1)单分支

if (条件表达式){
  执行代码块;(可以有多条语句)
}

当条件表达式为true时,就会执行{}的代码。如果为false时,就不执行。

特别注意:如果{}中只有一条语句时,可以不用{},建议写上{}。

// if 的快速入门
import java.util.Scanner;
public class if01{
	public static void main(String[] args) {
		// 输入人的年龄,大于18,则输出:成年人。
		// 思路分析:
		// 1、接收输入的年龄
		// 2、把年龄保存到变量
		// 3、使用if判断
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入年龄:");
		int age = myScanner.nextInt();
		if (age > 18){
			System.out.println("年龄大于18岁,是成年人了");	
		}
		System.out.println("程序继续执行");
	}
}

在这里插入图片描述

2)双分支

if (条件表达式){
    执行代码块1;
}
else{
    执行代码块2;
}

当条件表达式成立时,及执行代码块1,否则执行代码块2。如果执行的代码块只有一条语句,则{}可以省略,不推荐使用。

// if 的快速入门
import java.util.Scanner;
public class if01{
	public static void main(String[] args) {
		// 输入人的年龄,大于18,则输出:成年人。
		// 思路分析:
		// 1、接收输入的年龄
		// 2、把年龄保存到变量
		// 3、使用if,else判断
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入年龄:");
		int age = myScanner.nextInt();
		if (age > 18){
			System.out.println("年龄大于18岁,是成年人了");	
		} else { // 双分支
			System.out.println("年龄小于18岁,未成年");
		}
		System.out.println("程序继续执行");
	}
}

在这里插入图片描述

测试题

public class IfExercise01{
	public static void main(String[] args) {
		// 声明两个double类型的变量并赋值
		// 判断当第一个数大于10.0,且第二个数小于20.0时,打印两数之和。
		double num1 = 13;
		double num2 = 12;
		if (num1 >10 && num2 < 20){
			System.out.println("输出结果" + (num1 + num2));
		}
	}
}
public class IfExercise01{
	public static void main(String[] args) {
		// 声明两个int类型的变量并赋值,判断两者之和是否能被3又能被5整除,打印提示信息。
		int num1 = 12;
		int num2 = 18;
		int sum = num1 + num2;
		if (sum % 3 ==0 && sum % 5==0){
			System.out.println("两数之和可以整除3和5");
		}
	}
}

3)多分支

if (条件表达式1){
    执行代码块1;
} else if (条件表达式2){
    执行代码块2;
} 
......
  else{
    执行代码块n;
  }

在这里插入图片描述

特别说明:

  • 多分支,可以没有else。
// if 的快速入门
import java.util.Scanner;
public class if01{
	public static void main(String[] args) {
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入信用分:");
		// 如果输入的是一个字符串该怎么办呢,这里使用异常处理进行解决。
		int score = myScanner.nextInt();
		if (score <= 100 && score >0){
			if (score ==100){
				System.out.println("信用极好");
			} else if (80<score && score <=99) {
				System.out.println("信用优秀!!!");
			} else if (60 <= score && score <= 80) {
				System.out.println("信用一般");
			} else {
				System.out.println("信用不及格");
			}
		} else {
			System.out.println("信用分需要在1-100之间,请重新输入");
		}
	}
}

switch分支结构

switch(表达式){
  case 常量1:
    语句块1;
    break;
  case 常量2:
    语句块2;
    break;
  case 常量n:
    语句块n;
    break;
  default:
    default语句块;
}

1、witch关键字,表示switch分支

2、表达式对应一个值,可以是返回的值

3、case 常量1; 当表达式的值等于常量1时,就执行语句块1

4、break: 表示退出switch

5、如果和case常量1匹配就执行语句块1,如果不匹配则继续匹配case 常量2

6、如果一个都没有匹配上,则执行default。
在这里插入图片描述

switch注意事项和细节讨论

1、表达式中的数据类型,应该和case中的常量类型一致,或者是可以自动转成可以相互比较的类型。

2、switch中的表达式返回值必须是:byte、short、int、char、enum、String 注意没有double

通过1和2两个规则,决定了在case中byte、short、int、char为一类【自动提升为int类型】,string自己一类,enum之后再说。

3、case 中的值必须是常量,不能是变量。

4、default子句是可选的,也可以不写,当不写时,如果前面的case都不匹配时,则输出为空。

5、break语句用来在执行完case分支后使程序跳出switch语句块,如果没有break,程序会顺序执行到switch结尾。

练习题

在这里插入图片描述
在这里插入图片描述

int num = 12;
switch (num){
	case 3:
	case 4:
	case 5:
		System.out.println("春季");
		System.out.println("春季");
		break;
	case 6:
	case 7:
	case 8:
		System.out.println("夏季");
		System.out.println("夏季");
		break;
	case 9:
	case 10:
	case 11:
		System.out.println("秋季");
		System.out.println("秋季");
		break;
	case 12:
	case 1:
	case 2:
		System.out.println("冬季");
		System.out.println("冬季");
		break;
}

注意:switch中的default和break的作用范围。

0118_韩顺平Java_switch课堂练习1_哔哩哔哩_bilibili

switch和if的比较

1、如果判断的具体数值不多,而且符合 byte、short、int、char、enum、String这6种类型。虽然两个语句都可以使用,建议使用switch语句

2、其他情况,对区间的判断,对结果为bioolean类型判断,使用if,if的使用范围更广。

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

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

相关文章

成都链安:7月区块链安全事件爆发式增长,导致损失超4.11亿美元

7月&#xff0c;各类安全事件数量及造成的损失较6月爆发式增长。7月发生较典型安全事件超36起&#xff0c;各类安全事件造成的损失总金额约4.11亿美元&#xff08;虚拟货币案件涉案金额除外&#xff09;&#xff0c;较6月上涨约321%。Rug Pull导致损失约2065万美元&#xff0c;…

【linux基础(三)】Linux基本指令(下)

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到开通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; Linux基本指令 1. 前言2. 取头…

HTML 是什么?它的全称是什么?

聚沙成塔每天进步一点点 专栏简介HTML是什么&#xff1f;HTML的全称是什么&#xff1f;写在最后 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对We…

VMware ESXI虚拟网络和物理网络的对接

探讨VMware ESXI虚拟网络和物理网络的对接 前提&#xff1a; 在上篇搭建了ESXI 6.7&#xff0c;那和VMware Workstation一样想要创建虚拟机前提就必须先创建网络。没有网络连最基本的通信都没有&#xff0c;那肯定不行。所以我们解析要研究一下ESXI的网络。 物理连接模式&am…

Linux Day05

一、库文件生成与使用 1.1库文件 头文件是方法的声明&#xff0c;不是方法的实现 方法的实现是在库&#xff0c;库是预先编译好的方法的集合即.o文件 Linux上的库分为静态库(libxxx.a)和共享库(libxxx.so) 库文件常存放在/lib或者/usr/lib 库对应的头文件一般放在/usr/inc…

【188】Java8利用AVL树实现Map

AVL树又被叫做平衡二叉搜索树、平衡二叉树。AVL是其发明者的首字母缩写。 这篇文章中&#xff0c;AVLTreeMap 类集成了 java.util.Map 接口&#xff0c;并利用 AVL 树结构实现了 Map 接口的所有方法。本文还给出了测试代码。 为什么要发明AVL树&#xff1f; 当我按照从小到大…

【雕爷学编程】MicroPython动手做(33)——物联网之天气预报3

天气&#xff08;自然现象&#xff09; 是指某一个地区距离地表较近的大气层在短时间内的具体状态。而天气现象则是指发生在大气中的各种自然现象&#xff0c;即某瞬时内大气中各种气象要素&#xff08;如气温、气压、湿度、风、云、雾、雨、闪、雪、霜、雷、雹、霾等&#xff…

将自己的网站免费发布到互联网上【无需公网IP】

将自己的网站免费发布到互联网上【无需公网IP】 文章目录 将自己的网站免费发布到互联网上【无需公网IP】将本地搭建的网站发布到互联网步骤 ↓1. 注册并安装cpolar客户端1.1 windows系统1.2 linux系统&#xff08;支持一键自动安装脚本&#xff09;2. 登录cpolar web UI管理界…

Gradio-YOLOv5-YOLOv7 搭建Web GUI

目录 0 相关资料&#xff1a;1 Gradio介绍2 环境搭建3 GradioYOLOv54 GradioYOLOv75 源码解释 0 相关资料&#xff1a; Gradio-YOLOv5-Det&#xff1a;https://gitee.com/CV_Lab/gradio_yolov5_det 【手把手带你实战YOLOv5-入门篇】YOLOv5 Gradio搭建Web GUI: https://www.bi…

一次某某云上的redis读超时排查经历

性能排查&#xff0c;服务监控方面的知识往往涉及量广且比较零散&#xff0c;如何较为系统化的分析和解决问题&#xff0c;建立其对性能排查&#xff0c;性能优化的思路&#xff0c;我将在这个系列里给出我的答案。 问题背景 最近一两天线上老是偶现的redis读超时报警&#xf…

ChatGPT在工作中的七种用途

1. 用 ChatGPT 替代谷歌搜索引擎 工作时&#xff0c;你一天会访问几次搜索引擎&#xff1f;有了 ChatGPT&#xff0c;使用搜索引擎的频率可能大大下降。 据报道&#xff0c;谷歌这样的搜索引擎巨头&#xff0c;实际上很担心用户最终会把自己的搜索工具换成 ChatGPT。该公司针对…

KiCad各层简述

KiCad各层简述 KiCAD在Pcbnew中总计提供了32个铜层供导线走线&#xff08;可覆铜&#xff09;&#xff0c;12个固定技术层&#xff08;按照正反面分为6对&#xff09;&#xff0c;2个独立技术层&#xff0c;4个辅助层。在KiCad里Pcbnew的层描述中&#xff0c;F.代表电路板上层&…

机器学习笔记之优化算法(八)简单认识Wolfe Condition的收敛性证明

机器学习笔记之优化算法——简单认识Wolfe Condition收敛性证明 引言回顾&#xff1a; Wolfe \text{Wolfe} Wolfe准则准备工作推导条件介绍推导结论介绍 关于 Wolfe \text{Wolfe} Wolfe准则收敛性证明的推导过程 引言 上一节介绍了非精确搜索方法—— Wolfe \text{Wolfe} Wolf…

Letter of Acceptance 过期后,如何入境办学签?

很少会有同学遇到LoA过期时间之后入境办学签的问题&#xff0c;所以网上也很少有相关攻略。鉴于此&#xff0c;在联系了IRCC、学院办公室、研究生院和学校移民办公室之后&#xff0c;得到了最终答复。省流&#xff1a;在学校开个入学证明&#xff08;Proof of Enrolment&#x…

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

mybatis log插件

目前idea当中已经实施收费了 最近找了一个不收费的插件安装上重启一下就行了 点我下载提取码&#xff1a;sjc8

blender基础认识(选项开关、工具栏、视图等)

文章目录 引言一、大纲选项开关和保存启动文件1. 大纲选项1. 禁用选中2. 视图影藏3. 视图禁用4. 渲染禁用 2. 保存启动文件 二、工具栏和侧边栏1. 左侧工具栏2. 右侧工具栏 三、视图1. 视角2. 缩放3. 拖拽4. 摄像机视角5. 切换正交视图6. 局部视图7. 显示隐藏 四、添加删除物体…

在centos7.9安装tomcat8,并配置服务启动脚本,部署jpress应用

目录 一、简述静态网页和动态网页的区别 二、简述 Webl.0 和 Web2.0 的区别 三、 安装Tomcat8&#xff0c;配置服务启动脚本&#xff0c;部署jpress应用 3.1、Tomcat简介 3.2、安装Tomcat 3.2.1、配置环境 3.2.2、安装JDK 3.2.3、安装tomcat8 3.2.4、访问主页&#xff1…

go编译文件

1.编译go文件 go build [go文件]2.执行文件编译文件 ./demo [demo为go文件名称]

自然语言处理学习笔记(三)————HanLP安装与使用

目录 1.HanLP安装 2.HanLP使用 &#xff08;1&#xff09;预下载 &#xff08;2&#xff09;测试 &#xff08;3&#xff09;命令行 &#xff08;4&#xff09;测试样例 3.pyhanlp可视化 4. HanLP词性表 1.HanLP安装 HanLP的 Python接口由 pyhanlp包提供&#xff0c;其安装…