Java流程控制(一)

    • ⭐ 控制语句
    • ⭐ 条件判断结构(选择结构)
    • ⭐ switch 语句

  做任何事情事情都要遵循一定的原则,毕竟不以规矩,不成方圆,例如,到图书馆去借书,就必须要有借书证,并且借书证不能过期,这两个条件缺一不可。程序设计也是如此,需亚流程控制语句实现与用户的交流,并根据用户的输入决定程序要"做什么""怎么做"等。
  流程控制对于任何一门编程语言来说都是至关重要的,它提供了控制程序步骤的基本手段,如果没有流程控制语句,整个程序将按照线性的顺序来执行,不能根据用户的输入流决定执行的序列。下面我带大家一起了解Java语言中的流程控制语句。

⭐ 控制语句

在这里插入图片描述

控制语句:

把语句组合成能完成一定功能的小逻辑模块。
它分为三类:顺序、选择和循环。

学会控制语句,是真正跨入编程界的"门槛",是成为"程序猿"的"门票"。

⭐	 “顺序结构”代表“先执行 a,再执行 b”的逻辑。比如,先找个女朋友,再给女朋友打电话。
⭐	 “条件判断结构”代表“如果…,则…”的逻辑。比如,如果女朋友来电,则迅速接电话;
⭐	 “循环结构”代表“如果…,则重复执行…”的逻辑。比如,如果没打通女朋友电话,则再继续打一次;(做个舔狗!!!)

    很神奇的是,三种流程控制语句就能表示所有的事情!不信,你可以试试拆分你遇到的各种事情。实际上,任何软件和程序,小到一个练习,大到一个操作系统,本质上都是由“变量、选择语句、循环语句”组成。

在这里插入图片描述

⭐ 条件判断结构(选择结构)

在这里插入图片描述
条件判断结构有:

if 结构和 switch 结构。而 if 结构又可以分为 if 单分支结构、if-else 双分支结构、if-else if-else 多分支结构。

在这里插入图片描述
if 单分支结构
在这里插入图片描述
语法结构:

		if(布尔表达式){
			语句块
	}

注意:

	⭐	如果if语句不写{},则只能作用于后面的第一条语句。
	⭐	强烈建议,任何时候都写上{},即使里面只有一句话!

【eg】if 单分支结构(掷骰子游戏)
在这里插入图片描述
Math 类的使用

⭐	Math.random()该方法用于产生 0 到 1 区间的 double 类型的随机数,但是不包括 1。
⭐	int i = (int) (6 * Math.random()); //产生:[0,5]之间的随机整数
	public class Test {
		public static void main(String[ ] args) {
			//通过掷三个骰子看看今天的手气如何?
	int a = (int)(6 * Math.random()) + 1;//通过 Math.random()产生随机数
	int b = (int)(6 * Math.random()) + 1;
	int c = (int)(6 * Math.random()) + 1;
	int count = a + b + c;
		//如果三个骰子之和大于 15,则手气不错
		if(count > 15) {
		System.out.println("今天手气不错");
			}
		//如果三个骰子之和在 10 到 15 之间,则手气一般
		if(count >= 10 && count <= 15) { //错误写法:10<=count<=15
		System.out.println("今天手气很一般");
			}
		//如果三个骰子之和小于 10,则手气不怎么样
		if(count < 10) {
		System.out.println("今天手气不怎么样");
			}
		System.out.println("共计" + count + "分");
	}
}

if-else 双分支结构
在这里插入图片描述

语法结构:

	if(布尔表达式){
		语句块 1
	}else{
		语句块 2
}

当布尔表达式为真时,执行语句块1,否则,执行语句块2。也就是 else 部分。

【eg】if-else 双分支结构

	public class Test {
		public static void main(String[ ] args) {
		//随机产生一个[0.0, 4.0)区间的半径,并根据半径求圆的面积和周长
		double r = 4 * Math.random();
 		//Math.pow(r, 2)求半径 r 的平方
		double area = 3.14* r*r;
		double circle = 2 * Math.PI * r;
	System.out.println("半径为: " + r);
	System.out.println("面积为: " + area);
	System.out.println("周长为: " + circle);
		//如果面积>=周长,则输出"面积大于等于周长",否则,输出周长大于面积
			if(area >= circle) {
				System.out.println("面积大于等于周长");
			} else {
				System.out.println("周长大于面积");
		}
	}
}

条件运算符有时候可用于代替 if-else。

【eg】if-else 与条件运算符的比较:使用 if-else

	int a = 3;
	int b = 4;
	int c2 = 0;
		if(a<b){
 			c2 = b;
		}else{
 			c2 = a;
	}
	System.out.println(c2);

【eg】if-else 与条件运算符的比较:使用条件运算符

		// 三元运算
		int a = 3;
		int b = 4;
		int c = a<b?b:a; //返回 a 和 b 的最大值
		System.out.println(c);

if-else if-else 多分支结构

在这里插入图片描述

语法结构:

		if(布尔表达式 1) {
			语句块 1;
		} else if(布尔表达式 2) {
			语句块 2;
		}……
		else if(布尔表达式 n){
			语句块 n;
		} else {
			语句块 n+1;
}

当布尔表达式1为真时,执行语句块1;否则,判断布尔表达式2,当布尔表达式 2 为真时,执行语句块 2;否则,继续判断布尔表达式 3······;如果 1~n 个布尔表达式均判定为假时,则执行语句块 n+1,也就是 else 部分。

【eg】if-else if-else 多分支结构

	public class Test {
		public static void main(String[ ] args) {
			int age = (int) (100 * Math.random());
		System.out.print("年龄是" + age + ", 属于");
//15 岁以下儿童;15-24 青年;25-44 中年;45-64 中老年;65-84 老年;85 以上老寿星
			if (age < 15) {
		System.out.println("儿童, 喜欢玩!");
			} else if (age < 25) {
		System.out.println("青年, 要学习!");
			} else if (age < 45) {
		System.out.println("中年, 要工作!");
			} else if (age < 65) {
		System.out.println("中老年, 要补钙!");
			} else if (age < 85) {
		System.out.println("老年, 多运动!");
			} else {
		System.out.println("老寿星, 古来稀!");
		}
	}
}

⭐ switch 语句

switch 多分支结构(多值情况)
在这里插入图片描述

语法结构:

		switch (表达式) {
			case1: 
			语句块 1;
			break;
			case2:
			语句块 2;
			break;
 			… … … … …
			default:默认语句块;
}

⭐ switch 会根据表达式的值从相匹配的 case 标签处开始执行,一直执行到 break 处或者是 switch 的末尾。如果表达式的值与任一 case 值不匹配,则进入 default 语句。
⭐ switch 中表达式的值,是 int(byte、short、char、long 不行)、枚举,字符串。

【eg】switch 结构

		public class TestSwitch {
			 public static void main(String[] args){
			 int month = 2; //1 表示 1 月,2 表示 2 月,....
 			 if(month==1||month==2||month==3){
			 System.out.println("春季");
 			 }else if(month==4||month==5||month==6){
 			System.out.println("夏季");
 			 }else if(month==7||month==8||month==9){
 			System.out.println("秋季");
 			 }else{
 			System.out.println("冬季");
	 }
 System.out.println("========使用 switch 改造上面的代码,switch 特别适合多值判断=============");
		 switch (month){
		 case 1:
		 case 2:
		 case 3:
	 System.out.println("春季");
		 break;
 		 case 4:
 		 case 5:
 		 case 6:
	 System.out.println("夏季");
		 break;
		 case 7:
		 case 8:
		 case 9:
	 System.out.println("秋季");
		 break;
		 default:
	 System.out.println("冬季");
 		}
	 }
}

switch 接收字符串

【eg】JDK7.0 之后可以直接使用字符串。

		 String str = "audi";
 		 switch (str){
 		 case "audi":
		 System.out.println("我买了个奥迪车");
		 break;
		 case "benz":
		 System.out.println("我买了个奔驰车");
		 break;
		 default:
		 System.out.println("比亚迪,挺好!");
	 }

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 日志处理

Spring Boot 日志处理 Spring Boot 是一个非常流行的 Java 开发框架&#xff0c;它提供了简洁的配置和强大的开发工具。日志是应用程序中必不可少的一部分&#xff0c;因为它可以帮助开发人员进行调试和故障排除。Spring Boot 提供了多种日志框架&#xff0c;本文将重点介绍如…

Java泛型基本知识附面试题

一次平平无奇的面试 为什么要写这篇文档&#xff0c;主要就是在字节二面的时候&#xff0c;面试官提了这么一个问题 面试官&#xff1a;Java中的List<Integer>里有可能存String类型元素吗&#xff1f; 当时的我&#xff1a;应该…不可以吧&#xff0c;好像编译器会报错…

跟我一起使用 compose 做一个跨平台的黑白棋游戏(4)移植到compose-jb实现跨平台

前言 在上一篇文章中&#xff0c;我们已经实现了游戏的所有界面和逻辑代码&#xff0c;并且在 Android 上已经可以正常运行。 这篇文章我们将讲解如何将其从使用 jetpack compose 修改为使用 compose-jb 从而实现跨平台。 老规矩&#xff0c;先看效果图&#xff1a; 可以看到…

BurpSuite—-Target模块(目标模块)

前言 本文主要介绍BurpSuite—-Target模块(目标模块)的相关内容 关于BurpSuite的安装可以看一下之前这篇文章&#xff1a; http://t.csdn.cn/cavWt Target功能 目标工具包含了SiteMap&#xff0c;用你的目标应用程序的详细信息。它可以让你定义哪些对象在范围上为你目前的工…

「车型分析」控制系统典型应用车型 —— 辊筒AGV

辊筒AGV (Roller conveyor ) 是一种常见的AGV机器人类型&#xff0c;它利用辊筒和轮子在巷道中实现货物的搬运和运输&#xff0c;可实现托盘物品的卸载和运输等功能, 具有更高的灵活性、适应性和效率。本文将基于这款市场上常见的AGV进行一次简单的介绍。 1 车型介绍: 辊筒AGV…

Java基础学习(18)反射、动态代理

Java基础学习 一、反射1.1 什么是反射1.2 获取class对象 二、综合练习2.1 保存信息2.2 文件的动态创建 三、动态代理3.1 什么是动态代理3.2 创建代理 一、反射 1.1 什么是反射 反射允许对封装类的字段&#xff0c;方法和构造函数的信息进行编程访问 个人理解&#xff1a; 就是…

Mysql常见的索引模型

目录 有序数组哈希表二叉搜索树B-TreeBTree 有序数组 我们指定一个列为索引&#xff0c;然后按照这个列的值排序&#xff0c;以有序数据存放入数据表中&#xff0c;如下所示 这样&#xff0c;我们在查找数据的时候&#xff0c;就可以通过id这个列&#xff0c;在数据表中进行二…

坚持刷题2个月,终于......

最近一个读者和我反馈&#xff0c;他坚持刷题2个月&#xff0c;终于去了他梦寐以求的大厂&#xff0c;薪资涨幅非常可观&#xff0c;期间面字节跳动还遇到了原题…并表示目前国内的大厂和一些独角兽&#xff0c;已经越来越效仿硅谷公司的做法&#xff0c;通过面试给定题&#x…

zookeeper的安装使用

zookeeper的安装使用 一、下载安装 https://zookeeper.apache.org/ 点击 download 以我自己的安装为例,linux,3.8.0 准备3台linux服务器&#xff1a;192.168.10.128、192.168.10.129、192.168.10.130 1.上传解压 把apache-zookeeper-3.8.0-bin.tar.gz 上传到 /usr/local/zo…

耗时162天,从华为外包5k转岗正式员工15k,经历的心酸只有自己知道····

一提及外包测试&#xff0c;大部分人的第一印象就是&#xff1a;工作强度大&#xff0c;技术含量低&#xff0c;没有归属感&#xff01; 本人毕业于某普通二本院校非计算机专业&#xff0c;跨专业入行测试&#xff0c;至今有近 5年工作经验。 第一份测试工作是在华为做了两年外…

Github Copilot 的补强工具Github Copilot Labs的常用功能介绍

一、什么是Github Copilot Labs Github Copilot Labs是由GitHub推出的一款基于人工智能技术的代码协作工具&#xff0c;旨在协助开发者更加快速、高效地编写代码。该工具使用了机器学习技术&#xff0c;通过学习大量的开源代码和编写实践&#xff0c;提供了对于代码变量、函数…

多激光雷达手眼标定

手眼标定方法已经有很多博客进行解析&#xff0c;但是都是针对机器人的手&#xff08;夹爪&#xff09;眼睛&#xff08;相机&#xff09;进行标定。例如&#xff1a; 标定学习笔记&#xff08;四&#xff09;-- 手眼标定详解 手眼标定_全面细致的推导过程 本文主要描述多激光…

四、数据仓库详细介绍(规范)

大家好&#xff0c;这是数据仓库系列的第三个话题&#xff0c;排序在架构之后、建模之前。为什么会提的这么靠前呢&#xff1f; 因为规范约束的是数仓建设的全流程&#xff0c;以及后续的迭代和运维。事实上&#xff0c;数仓规范文档&#xff0c;应该随着架构设计文档&#xf…

Java 与排序算法(5):归并排序

一、归并排序 归并排序&#xff08;Merge Sort&#xff09;是一种基于分治思想的排序算法。它将待排序的数组分成两个长度相等的子数组&#xff0c;然后对这两个子数组分别进行归并排序&#xff0c;最后将两个排好序的子数组合并成一个有序的数组。 具体实现过程如下&#xf…

要做存储业务,我解析了一个项目的源码

最近在做存储相关的业务&#xff0c;更具体的来说是存储相关的研发&#xff0c;于是就上网查了一下相关的资料&#xff0c;思虑再三打算从最简单的 Json 数据交换格式开始研究。 JSON是独立于编程语言的数据交换格式&#xff0c;几乎所有与网络开发相关的语言都有JSON函数库&am…

基于Java+SpringMvc+vue+element实现高效学生社团平台管理

基于JavaSpringMvcvueelement实现高效学生社团平台管理 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式…

oracle数据库当中用户的创建,添加,授权,以及表的创建与表的简单介绍,以及在oracle数据库当中的约束以及约束条件的简单介绍

系列文章目录 (3条消息) oracle数据库简介 文章目录 系列文章目录 前言 一、用户的创建 1.1、创建命令 1.2、给予scott用户权限 1.3、以scott用户进行连接登录 二、表和表的设计原则 2.1、表的概念 2.1.1、表是从属于用户的 2.1.2、表是逻辑表(概念表)&#xff0c;不…

gpt.4.0-gpt 国内版

gpt 使用 GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一种预训练的语言模型&#xff0c;可用于多种自然语言处理任务&#xff0c;如情感分析、文本分类、文本生成等。下面是使用GPT的一些步骤和建议&#xff1a; 确定任务和数据集&#xff1a;首先&…

Hibernate 快速入门

Hibernate 快速入门 〇、前言一、搭建 Hibernate 项目步骤1:新建 Java 项目附录1:新建Java项目中的相关文件信息步骤2:添加 Hibernate 框架支持附录2:添加Hibernate框架支持后,Java项目中的相关文件信息步骤3:其他关键配置1、添加数据库驱动包(本文以MySQL为例)2、配置…

C++11 列表初始化initializer_list

引子 C11&#xff0c;是继C98后的一次有力更新&#xff0c;引进了很多好用的语法&#xff0c;STL也添加了几个新容器&#xff0c;也解决了很多的问题。本篇博客就学习一下C11列表初始化的新语法和 initializer_list 文章目录 引子一. 列表初始化二. initializer_list结束语 一…