6、If、While、For、Switch
6、If、While、For、Switch
一、If
1、if-else
if (boolean) {代码块
} else if (boolean) {代码块
} else if (boolean) {代码块
} else { // 默认情况代码块
}
关于IDEA单元测试控制台不能输入数据的问题:
https://blog.csdn.net/m0_72900498/article/details/143663689?spm=1001.2014.3001.5501
-Deditable.java.test.console=true
代码示例:
package com.situ.day8;import org.junit.Test;import java.util.Scanner;public class Demo01 {@Testpublic void test1() {if (3 >= 5) {System.out.println("3 < 5");} else {System.out.println("3 >= 5");}}/*>=90 <=100 优秀>=80 <90 良好>=70 <80 一般>=60 <70 及格<60 不及格*/@Testpublic void test2(){//你想表达什么意思就起成什么名字//int score = 9;//通过Scanner可以实现从控制台输入信息//对于<0和>100的数据,打印“这是非法输入”Scanner scanner = new Scanner(System.in);System.out.println("请输入成绩:");int score = scanner.nextInt();//卫语句1if (score < 0 || score > 100) {System.out.println("这是非法输入");//方法后面的代码不再执行return;}//卫语句2...//合法输入if (score >= 90 && score <= 100) {System.out.println("优秀");} else if (score >= 80 && score < 90) {System.out.println("良好");} else if (score >= 70 && score < 80) {System.out.println("一般");} else if (score >= 60 && score < 70) {System.out.println("及格");} else {System.out.println("不及格");}}}
2、三目运算符
语法:boolean ? 数1 : 数2
执行过程:计算boolean的值
若为true:则整个结果为数1
若为false:则整个结果为数2
@Test
public void test55() {int num1 = 13;int num2 = 5;int max = 0;if (num1 >= num2) {max = num1;} else {max = num2;}System.out.println(max);//等价于:int max1 = num1 >= num2 ? num1 : num2;System.out.println(max1);
}
3、+号运算符
1、两边都是数字,则做的就是加法运算
2、若一边为字符串,则做的是字符串的拼接
@Test
public void test7() {int age = 28;//豆豆加加System.out.println("我的年龄是23岁");System.out.println("我的年龄是" + age + "岁");System.out.println(10 + 20 + "" + 30);//3030System.out.println("" + 10 + 20 + 30);//102030
}
二、While、For
1、while、for
任何复杂的程序逻辑都可以通过“顺序”、“分支”、“循环”这三种基本结构来实现。
循环的三要素:
1.循环条件的初始化
2.循环条件的控制
3.循环条件的改变
if (boolean) {
}//if不是循环
while (boolean) {//可以反复执行
}
示例:
使用While和for循环分别打印五次HelloWorld:
@Test
public void test1() {int i = 1;while (i <= 5) {System.out.println("HelloWorld");i++;}
}@Test
public void test2() {for (int i = 1; i <= 5; i++) {System.out.println("HelloWorld");}
}
while、for循环主要是两类题目:
1、累加思想(1+2+3+… + 100)
//sum += i; sum = sum + i
//sum -= i; sum = sum - i
//sum *= i; sum = sum * i
//sum /= i; sum = sum / i
@Test
public void test3() {int sum = 0;for (int i = 1; i <= 100; i++) {System.out.println(i);sum += i;System.out.println("sum: " + sum);}System.out.println("sum: " + sum);
}
2、统计思想,数一下符合条件的有多少个(计算1-100以内7的倍数的个数)
@Test
public void test4() {int count = 0;for (int i = 1; i <= 100; i++) {if (i % 7 == 0) {System.out.println(i);count++;}}System.out.println("count: " + count);
}
2、continue、break
continue:跳出本次循环,继续下一次循环
break:跳出离他最近的那层循环
@Test
public void test44() {for (int i = 1; i <= 5; i++) {if (i == 3) {continue;}System.out.println(i);//输出 1 2 4 5}
}@Test
public void test45() {for (int i = 1; i <= 5; i++) {if (i == 3) {break;}System.out.println(i);//输出1 2}
}@Test
public void test46() {//i,j,kfor (int i = 1; i <= 5; i++) {System.out.println("i: " + i);for (int j = 1; j <= 5; j++) {if (j == 3) {break;//break只能退出离他最近的一层循环;也就是退出for (int j = 1; j <= 5; j++)这层循环}System.out.println("j: " + j);}}
}
例题:随机生成一个整数1-1000
用户输入一个整数,程序给出与存储的数字是“大”或者“小”,知道用户猜到这个数字位置。
如果中途用户希望程序退出,输入0可以退出。
int num = 200;
猜吧!
300
太大了
猜吧!
180
太小了
猜吧!
200
恭喜你,猜对了
//随机生成一个整数1-1000
@Test
public void test7() {//params parameter:参数Random random = new Random();//the upper bound (exclusive). Must be positive.//exclude:排除、不包含//include://value between zero (inclusive) and bound (exclusive)// [0,100) + 1// 1-100int num = random.nextInt(100) + 1;
}
关于快捷键获取方法的返回值:
random.nextInt(100).var然后回车
3、双重for循环
双重for循环:
1.外层循环控制行数,数一下有几行就能确定外层循环。
2.内层循环控制列数,这一行打印多少个,到底要打印多少个要找出和当前行之间的一个关系。
@Testpublic void test55() {//****for (int i = 1; i <= 4; i++) {System.out.print("*");}System.out.println();//*//*//*//*for (int i = 1; i <= 4; i++) {System.out.println("*");}}@Testpublic void test6() {// i=1代表打印第一行for (int i = 1; i <= 3; i++) {//i=1: 代表打印第一行//i=2: 代表打印第二行//i=3: 代表打印第三行for (int j = 1; j <= 4; j++) {//j代表这一行打印多少个System.out.print("*");}//打印完一行之后需要换行System.out.println();}}// *
// **
// ***
// ****
// *****@Testpublic void test545() {// i=1 j=1// i=2 j=2// i=3 j=3for (int i = 1; i <= 5; i++) {for (int j = 1; j <= i; j++) {System.out.print("*");}System.out.println();}}@Testpublic void test75() {for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {//System.out.println("2*7=14");System.out.print(j + "*" + i + "=" + (i * j) + "\t");}System.out.println();}}
4、无限循环
while(true)
for(;;)
三、Switch
switch: 可以接受的值(int byte 整数类型,char,String)
switch(2) {case 1:.....break;case 2:....break;..... default:.....break;
}
@Test
public void test90() {int num = 2;if (num == 1) {System.out.println("1");} else if (num == 2) {System.out.println("2");} else if (num == 3) {System.out.println("3");} else {System.out.println("else");}switch (num) {case 1:System.out.println("1");break;case 2:System.out.println("2");break;case 3:System.out.println("3");break;default:System.out.println("default");break;}
}
练习1:
输入月份、年份判断天数:
1、3、5、7、8、10、12 -------- 31天
4、6 、9、11--------------------30天
2----------------------------------28/29天
练习2:
之前用if-else做的程序,使用switch完成:
=90 <=100 优秀
=80 <90 良好
=70 <80 一般
=60 <70 及格
<60 不及格
@Test
public void test1() {Scanner scanner = new Scanner(System.in);System.out.println("请输入月份:");int month = scanner.nextInt();switch (month) {case 1:System.out.println("31天");break;case 3:System.out.println("31天");break;case 4:System.out.println("30天");break;case 5:System.out.println("31天");break;case 2:System.out.println("请输入年份:");int year = scanner.nextInt();break;}
}@Test
public void test2() {Scanner scanner = new Scanner(System.in);System.out.println("请输入月份:");int month = scanner.nextInt();switch (month) {case 1:case 3:case 5:case 7:System.out.println("31天");break;case 4:case 6:case 9:case 11:System.out.println("30天");break;case 2:System.out.println("请输入年份:");int year = scanner.nextInt();break;default:System.out.println("default");break;}
}
四、作业
1、计算某年是不是闰年:
能被4整除,但是不能被100整除 || 能被400整除
if (() || ()) {
}
2、从控制台输入两个数,然后分别打印这两个数,然后交换这两个数的值
3.1、编写一个收银台收款程序,if
定义输入----单价、数量、用户输入金额
定义输出----应收金额、找零
使用double类型变量 scanner.nextDouble();
3.2、当总价>=500时候打八折
3.3、考虑程序出现异常的情况,如:收款金额小于应收金额
若收款金额大于等于应收金额,则计算找零后输出若收款金额小于应收金额,输出错误信息。
4、输出一下结构:
1
12
123
1234
12345
5、打印正三角形和倒三角形
*************************
***********
6、计算1-100以内所有奇数的和以及所有偶数的和,分别打印出来。
7、用for循环输出1—1000之间能被5整除的数,且每行输出3个
8、计算9的阶乘
相关文章:

6、If、While、For、Switch
6、If、While、For、Switch 一、If 1、if-else if (boolean) {代码块 } else if (boolean) {代码块 } else if (boolean) {代码块 } else { // 默认情况代码块 }关于IDEA单元测试控制台不能输入数据的问题: https://blog.csdn.net/m0_72900498/article/details/…...

萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
随着智慧城市和数字化转型的推进,视频监控系统已成为保障公共安全、提升管理效率的重要工具。特别是在大中型项目中,跨区域的网络化视频监控需求日益增长,这要求视频监控管理平台不仅要具备强大的视频资源管理能力,还要能够适应多…...
【多线程】线程池如何知道一个线程的任务已经完成
目录 1. 说明2. 任务的生命周期3. 状态更新4. 线程间的协作5. 内部数据结构6. 回调与通知7. 线程池的关闭与清理 1. 说明 1.线程池通过一系列内部机制来知道一个线程的任务已经完成。2.这些机制主要涉及任务的生命周期管理、状态更新以及线程间的协作。 2. 任务的生命周期 1…...

Transformer介绍(一)
Transformer是一种特殊的神经网络,一种机器学习模型。 谷歌在2017年推出的原版Transformer,论文《Attention Is All You Need》,专注于将一种语言的文本翻译成另一种。 而我们要关注的Transformer变种,即构建ChatGPT等工具的模型…...

[CKS] TLS Secrets创建与挂载
目前的所有题目为2024年10月后更新的最新题库,考试的k8s版本为1.31.1 BackGround 您必须使用存储在TLS Secret中的SSL文件,来保护Web 服务器的安全访问。 Task 在clever-cactus namespace中为名为clever-cactus的现有Deployment创建名为clever-cactu…...

java双向链表解析实现双向链表的创建含代码
双向链表 一.双向链表二.创建MyListCode类实现双向链表创建一.AddFirst创建(头插法)二.AddLast创建(尾叉法)三.size四.remove(指定任意节点的首位删除)五.removeAll(包含任意属性值的所有删除)六.AddIndex(给任意位置添加一个节点…...
【Kafka-go】golang的kafka应用
网络上关于go的Kafka还是比较少的今天就先出一篇入门级别的,之后再看看能能出一个公司业务场景中的消息流。 一、下载github.com/segmentio/kafka-go包 go get github.com/segmentio/kafka-go二、建立kafka连接 正常来说下面的配置host topic partition 应该写在…...

redis:set集合命令,内部编码,使用场景
个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 前言命令SADDSMEMBERSSISMEMBERSCARDSPOPSMOVESREM集合间操作SINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE 内部编码使用场景总结 前言…...
45期代码随想录算法营总结
代码随想录训练营总结与收获 在为期60天的代码随想录训练营结束后,我感慨良多。这段时间不仅让我在编程技能上有了明显的提升,更让我在学习习惯和时间管理上有了深刻的反思和改变。 报名参加这个训练营对我来说是一个重要的监督机制。之前我总是拖延&a…...
深入理解Java中的instanceof关键字及接口新特性:方法实现的可能性
目录 引言 1. 什么是instanceof关键字? 1.1 语法结构 1.2 instanceof的用法示例 1.3 instanceof的应用场景 2. Java中的接口能包含方法实现吗? 2.1 默认方法(Default Method) 2.2 静态方法(Static Method&…...
【python中如果class没有self会怎行】
python中如果class没有self会怎样TOC 在Python中,self是一个约定俗成的名称,用于表示类的实例。如果没有使用self,会导致以下问题: 1、无法访问实例属性: 在类的方法中,如果没有self,方法将无…...

【算法】(Python)动态规划
动态规划: dynamic programming。"programming"指的是一种表格法,而非编写计算机程序。通常解决最优化问题(optimization problem)。将问题拆分成若干个子问题,求解各子问题来得到原问题的解。适用于多阶段…...
EasyExcel 学习之 导出 “提示问题”
EasyExcel 学习之 导出 “提示问题” 现象分析解决(伪代码)前端 POST 实现后端实现 现象 EasyExcel 支持导出 xlsx、xls、csv 三种文件格式。在导出过程中可能发生各种异常,当发生异常时应该提示错误信息而非导出一个错误的文件。 分析 首…...
应用系统开发(3)低功耗四运算放大器LM324N
LM324N 是一种广泛使用的 低功耗四运算放大器,由德州仪器(Texas Instruments)和其他制造商生产。它具有四个独立的运算放大器,能够在单电源或双电源模式下运行,适合多种模拟电路应用。以下是详细信息: 芯片基本信息 型号:LM324N封装类型:常见 DIP(双列直插封装)或 SO…...

基于微信小程序的电商平台+LW示例参考
1.项目介绍 系统角色:管理员、普通用户功能模块:管理员(用户管理、商品分类、商品管理、订单管理、系统管理等),普通用户(个人中心、收藏、我的订单、查看商品等)技术选型:SpringBo…...
[Android] Graphic Buffer 的申请
前言: MediaCodec 支持 texture mode,即MediaCodec解码video完毕后把 yuv 数据填入 GPU 共享出来的 graphic buffer 里面,app 会把 video 的 yuv数据 和 ui 的数据通过通过软件渲染组件(opengl等)发送给GPU 进行一并渲染。这样做的效率较低&…...

【大数据学习 | HBASE高级】storeFile文件的合并
Compaction 操作分成下面两种: Minor Compaction:是选取一些小的、相邻的StoreFile将他们合并成一个更大的StoreFile,对于删除、过期、多余版本的数据不进行清除。 Major Compaction:是指将所有的StoreFile合并成一个StoreFile&am…...
多平台编包动态引入依赖的解决方案
最近开发时遇到了这样的需求,A 平台需要引入一个 video.js,B 平台却是不需要的,那么面向 B 平台打包的时候把依赖装进去自然就不大合适。最好的方法是动态引入依赖,根据平台来判断要不要引入 动态引入依赖 很快啊,动…...

[单例模式]
目录 [设计模式] 单例模式 1. 饿汉模式 2. 懒汉模式 3. 单例模式的线程安全问题 [设计模式] 设计模式是软件工程中的一种常见做法, 它可以理解为"模板", 是针对一些常见的特定场景, 给出的一些比较好的固定的解决方案. 不同语言适用的设计模式是不一样的. 这里…...
速盾:游戏盾的功能和原理详解
速盾有一款专注于网络游戏安全的防护系统,它通过实时监测游戏网络流量和玩家行为,以及使用先进的算法和技术进行分析和识别,检测出各种外挂、作弊行为和恶意攻击,从而保障游戏的公平性和玩家的安全性。 速盾游戏盾的主要功能包括…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...