【JavaSE】Java基础语法(三)

news2024/11/24 19:55:33

文章目录

  • 1. 🍼流程控制语句
    • 1.1 流程控制语句分类
    • 1.2 分支结构之if语句
      • 1.2.1 if语句格式3案例
  • 2. 🍼switch语句
    • 2.1 分支语句switch语句
    • 2.2 switch案例-减肥计划
    • 2.3 switch语句case穿透
  • 3. 🍼for 循环
    • 3.1 循环语句-for循环
    • 3.2 for循环案例-求1-100偶数和
  • 4. 🍼while循环
    • 4.1 while循环案例-珠穆朗玛峰


在这里插入图片描述


1. 🍼流程控制语句


在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每 条语句的执行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。

1.1 流程控制语句分类


🍉顺序结构

🍉分支结构(if, switch)

🍉循环结构(for, while, do…while)

1.2 分支结构之if语句

1.2.1 if语句格式3案例


需求:小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可
以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。
分析:

🍉①小明的考试成绩未知,可以使用键盘录入的方式获取值
🍉②由于奖励种类较多,属于多种判断,采用if…else…if格式实现
🍉③为每种判断设置对应的条件
🍉④为每种判断设置对应的奖励

import java.util.Scanner;
public class IfTest02 {
	public static void main(String[] args){
		// 1. 使用Scanner录入考试成绩
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入您的成绩:");
		int score = sc.nextInt();
		// 2. 判断成绩是否在合法范围内 0~100
		if(score >=0 && score <= 100){
			// 合法成绩
			// 3. 在合法的语句块中判断成绩范围符合哪一个奖励
			if(score >= 95 && score <= 100){
			System.out.println("自行车一辆");
			}else if(score >= 90 && score <= 94){
			System.out.println("游乐场一次");
			}else if(score >= 80 && score <= 89){
			System.out.println("变形金刚一个");
			}else {
			System.out.println("挨顿揍, 这座城市又多了一个伤心的人~");
			}
		}else{
		// 非法的话, 给出错误提示
			System.out.println("您的成绩输入有误!");
		}
	}
}

2. 🍼switch语句

2.1 分支语句switch语句

格式 (表达式支持 byte short int char String 枚举)

switch (表达式) {
	case 1:
		语句体1;
		break;
	case 2:
		语句体2;
		break;
	...
	default:
		语句体n+1;
		break;
}

执行流程

  • 🍓首先计算出表达式的值
  • 🍓其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到
    break就会结 束。
  • 🍓最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束
    掉。

2.2 switch案例-减肥计划

需求:键盘录入星期数,显示今天的减肥活动

🍓周一:跑步
🍓周二:游泳
🍓周三:慢走
🍓周四:动感单车
🍓周五:拳击
🍓周六:爬山
🍓周日:好好吃一顿

实例代码

public static void main(String[] args){
	// 1. 键盘录入星期数据,使用变量接收
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入");
	int week = sc.nextInt();
	// 2. 多情况判断,采用switch语句实现
	switch(week){
		// 3. 在不同的case中,输出对应的减肥计划
		case 1:
			System.out.println("跑步");
			break;
		case 2:
			System.out.println("游泳");
			break;
		case 3:
			System.out.println("慢走");
			break;
		case 4:
			System.out.println("动感单车");
			break;
		case 5:
			System.out.println("拳击");
			break;
		case 6:
			System.out.println("爬山");
			break;
		case 7:
			System.out.println("好好吃一顿");
			break;
		default:
			System.out.println("您的输入有误");
			break;
		}
	}
}

2.3 switch语句case穿透

概述 : 如果switch语句中,case省略了break语句, 就会开始case穿透
需求 : 键盘录入星期数,输出工作日、休息日 (1-5)工作日,(6-7)休息日
示例代码

/*
	case穿透是如何产生的?
	如果switch语句中,case省略了break语句, 就会开始case穿透.
	现象:
	当开始case穿透,后续的case就不会具有匹配效果,内部的语句都会执行
	直到看见break,或者将整体switch语句执行完毕,才会结束。
*/
public static void main(String[] args){
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入星期数:");
	int week = sc.nextInt();
	switch(week){
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			System.out.println("工作日");
			break;
		case 6:
		case 7:
			System.out.println("休息日");
			break;
		default:
			System.out.println("您的输入有误");
			break;
		}
	}
}

3. 🍼for 循环

3.1 循环语句-for循环


循环:

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环
体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循
环,否则循环将一直执行下去,形 成死循环。


for循环格式:

for (初始化语句;条件判断语句;条件控制语句) {
	循环体语句;
}

3.2 for循环案例-求1-100偶数和


需求:求1-100之间的偶数和,并把求和结果在控制台输出 }

示例代码

public class ForTest03 {
	public static void main(String[] args) {
		//求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0
		int sum = 0;
		//对1-100的数据求和与1-5的数据求和几乎完全一样,仅仅是结束条件不同
		for(int i=1; i<=100; i++) {
			//对1-100的偶数求和,需要对求和操作添加限制条件,判断是否是偶数
			if(i%2 == 0) {
			sum += i;
			}
		}
		//当循环执行完毕时,将最终数据打印出来
		System.out.println("1-100之间的偶数和是:" + sum);
	}
}

4. 🍼while循环


while循环完整格式:

初始化语句;
while (条件判断语句) {
	循环体语句;
	条件控制语句;
}

while循环执行流程

🍗①执行初始化语句

🍗②执行条件判断语句,看其结果是true还是false

	🌯如果是false,循环结束

	🌯如果是true,继续执行

🍗③执行循环体语句

🍗④执行条件控制语句

🍗⑤回到②继续


实例代码:

public class WhileDemo {
	public static void main(String[] args) {
		//需求:在控制台输出5次"HelloWorld"
		//for循环实现
		for(int i=1; i<=5; i++) {
			System.out.println("HelloWorld");
		}
		System.out.println("--------");
		//while循环实现
		int j = 1;
		while(j<=5) {
			System.out.println("HelloWorld");
			j++;
		}
	}
}

4.1 while循环案例-珠穆朗玛峰


需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚
度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度?

示例代码:

public class WhileTest {
	public static void main(String[] args) {
		//定义一个计数器,初始值为0
		int count = 0;
		//定义纸张厚度
		double paper = 0.1;
		//定义珠穆朗玛峰的高度
		int zf = 8844430;
		//因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环
		//折叠的过程中当纸张厚度大于珠峰就停止了,因此继续执行的要求是纸张厚度小于珠峰高度
		while(paper <= zf) {
			//循环的执行过程中每次纸张折叠,纸张的厚度要加倍
			paper *= 2;
			//在循环中执行累加,对应折叠了多少次
			count++;
		}
		//打印计数器的值
		System.out.println("需要折叠:" + count + "次");
	}
}

在这里插入图片描述

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

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

相关文章

项目集管理—项目集相关方参与

项目集相关方参与是识别和分析相关方需求、管理期望和沟通&#xff0c;以促进相关方支持的绩效领域。 本章内容包括&#xff1a; 1 项目集相关方识别2 项目集相关方分析3 项目集相关方参与规划4 项目集相关方参与5 项目集相关方沟通 相关方是指能够影响项目、项目集或项目组合…

Java 实现实时监听MySQL数据库变更MySQLBinListener

目录 1、导出需要的类和接口 2、 定义 MySQLBinlogListener类 3、私有方法&#xff0c;启动重连定时器 4、完整代码 编写一个MySQL数据库实时变更的监听器。 为什么要编写这个一个监听器&#xff1a;为了实时监测和响应MySQL数据库中的变更事件 实时数据同步&#xff1a;通…

运营-12.转化

用户注册、登录、浏览、发布、购买等行为都可以视为转化&#xff1b;而对于电商产品而言&#xff0c;狭义的转化即为获取 收入&#xff0c;就是要用户买单、消费&#xff0c;把免费用户转化为付费用户&#xff1b; 转化的重要性 1.转化意味着用户有投入&#xff0c;投入即沉没成…

Serverless冷扩机器在压测中被击穿问题 | 京东云技术团队

一、现象回顾 在今天ForceBot全链路压测中&#xff0c;有位同事负责的服务做Serverless扩容&#xff08;负载达到50%之后自动扩容并上线接入流量&#xff09;中&#xff0c;发现新扩容的机器被击穿&#xff0c;监控如下&#xff08;关注2:40-3:15时间段的数据&#xff09;&…

人工智能AI 计算平台介绍

人工智能AI计算平台介绍 产品及服务&#xff1a; 标准模块开源 核心模块及服务收费 资源齐全 服务支持 产品使用者&#xff1a; 自行扩充组件 快速二次开发 轻松搭建企业级 数据挖掘应用 自…

linux0.12-10-1-总体功能

第10章 字符设备驱动程序 [466页] 10-1 总体功能 本章的程序可分成三部分: 第一部分是是关于RS-232串行线路驱动程序&#xff0c;包括程序rs_io.s和serial.c&#xff1b; 第二部分是涉及控制台的驱动程序&#xff0c;包括键盘中断驱动程序keyboard.S和控制台显示驱动程序con…

人工智能AI会话+文字转为markdown格式/思维导图的工具的介绍和使用

AI会话工具和文字转换为markdown格式 1、这里首先要有一个xmind思维导图软件&#xff0c;下载链接在下方。XMind: 2、本章中列举的AI工具是近期国内交火的prompt&#xff08;文心一言 作者还没排上队&#xff09; https://chat.givemeprompt.com/3、首先运用此工具生成你想要的…

leetcode刷题之数组问题总结,二分法,移除元素,

目录 一、二分查找相关应用704.二分查找35.搜索插入位置方法一:二分法暴力解法 34.在排序数组中查找元素的开始位置和最后一个位置方法一&#xff1a;暴力解法方法二&#xff1a;二分法&#xff0c;确定左右两侧的边界 69.x的平方根方法一:二分法方法二&#xff1a;暴力解法错解…

k8s1.26.1部署 ingress-nginx-controller(1.6.4)

文章目录 参考ingress-nginx git地址ingress-nginx 的 deployment的地址&#xff1a; 参考 1.24版本k8s集群配置Nginx-Ingressrancher配置https域名访问图文教程 ingress-nginx git地址 https://github.com/kubernetes/ingress-nginx ingress-nginx 的 deployment的地址&a…

cdn配置(超详细+图解+原理)

具体的详细配置在右侧目录翻到“三”&#xff0c;前面的一二是将原理 以腾讯云的cdn为例&#xff0c;其它家的大同小异 一、cdn作用和配置思路 &#xff08;一&#xff09;cdn作用 1.加速访问 cdn服务通常有多个节点缓存&#xff0c;用户可以就近获取&#xff0c;延迟较低 …

得物App万米高空WiFi拦截记

0.前情摘要 在一次飞行途中&#xff0c;我司客户遭遇到了得物App在飞机上的WiFi网络访问异常的问题。这让我们意识到在特定场景下&#xff0c;用户可能面临无法使用得物App的困扰。经过SRE团队与无线团队、网络团队联合全力排查与优化&#xff0c;最终成功解决了这一问题&…

PAN(Pyramid Attention Network for semantic segmentation)paper解读

Pyramid Attention Network for Semantic Segmentation讲PAN用于语义分割&#xff0c;网络结构类似encoder-decode, u-shape。 背景 encoder-decoder结构&#xff0c; 在encoding到高维度特征的过程中&#xff0c;原始的纹理信息会遭遇空间分辨率损失&#xff0c;例如FCN。 P…

Spring Boot进阶(39):SpringBoot之Jackson配置全局时间日期格式 | 超级详细,建议收藏

1. 前言&#x1f525; 不知道小伙伴对于日期字段&#xff0c;在项目中都是如何处理的&#xff0c;是单独给每个字段都自定义日期格式还是做全局格式设置&#xff1f;这个我之前啊&#xff0c;是对日期都是有做单独配置&#xff0c;给每个Entity带有日期字段的都配JsonFormat注解…

SolVES 模型与多技术融合【QGIS、PostgreSQL、ARCGIS、MAXENT、R】实现生态系统服务功能社会价值评估及拓展案例分析

生态系统服务是人类从自然界中获得的直接或间接惠益&#xff0c;可分为供给服务、文化服务、调节服务和支持服务4类&#xff0c;对提升人类福祉具有重大意义&#xff0c;且被视为连接社会与生态系统的桥梁。自从启动千年生态系统评估项目&#xff08;Millennium Ecosystem Asse…

编译器设计(十四)——寄存器分配

文章目录 一、简介二、背景问题2.1 内存与寄存器2.2 分配与指派2.3 寄存器类别 三、局部寄存器分配和指派3.1 自顶向下的局部寄存器分配3.2 自底向上的局部寄存器分配3.3 超越单个程序块 四、全局寄存器分配和指派4.1 了解图着色4.2 找到全局活跃范围4.3 估算全局逐出代价4.4 冲…

前端列表页+element-puls实现列表数据弹窗功能

效果图&#xff1a; 这是一个修改的弹窗&#xff0c;我们要实现的功能是&#xff0c;在列表&#xff0c;点击修改按钮时&#xff0c;将数据带入到弹窗里面&#xff0c;点击保存时关闭弹窗。 1&#xff0c;点击修改展开弹窗 使用 eldialog组件&#xff0c;v-model绑定的值为tru…

fluent-operator在kubesphere中的实战详解

前言 最近收到一个小任务&#xff1a;熟悉kubesphere实现一个日志平台。基于这样的机会&#xff0c;将最近所整理的笔记进行汇总。 kubesphere开启日志收集 根据官网介绍只需要将 enabled 的 false 改为 true即可 执行kubectl get pod -n kubesphere-logging-system命令来检查…

QT课程 QT介绍

QT介绍&#xff08;了解&#xff09; Qt是一个基于C开发语言的图形用户界面开发&#xff08;GUI&#xff09;框架。界面开发知识Qt的一部分&#xff0c;实际上Qt也可以支持很多其他的功能&#xff0c;比如&#xff1a;网络编程、文件IO、图形图像处理等。 Qt在嵌入式领域最大…

Vue之插值表达式,v-bind(单向绑定),v-model(双向绑定)

文章目录 前言一、插值表达式二、v-bind指令三、v-model指令总结 前言 插值表达式{{…}} v-bind v-model 一、插值表达式 插值表达式支持匿名变量、三目运算符、四则运算符、比较运算符、数值类型的一些内置方法&#xff0c;还有数组的索引取值方法和对象属性。 <!DOCTYPE…

安全工具 | CMSeeK [指纹识别]

0x00 免责声明 本文仅限于学习讨论与技术知识的分享&#xff0c;不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;本文作者不为此承担任何责任&#xff0c;一旦造成后果请自行承担…