当前位置: 首页 > news >正文

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单元测试控制台不能输入数据的问题&#xff1a; https://blog.csdn.net/m0_72900498/article/details/…...

萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?

随着智慧城市和数字化转型的推进&#xff0c;视频监控系统已成为保障公共安全、提升管理效率的重要工具。特别是在大中型项目中&#xff0c;跨区域的网络化视频监控需求日益增长&#xff0c;这要求视频监控管理平台不仅要具备强大的视频资源管理能力&#xff0c;还要能够适应多…...

【多线程】线程池如何知道一个线程的任务已经完成

目录 1. 说明2. 任务的生命周期3. 状态更新4. 线程间的协作5. 内部数据结构6. 回调与通知7. 线程池的关闭与清理 1. 说明 1.线程池通过一系列内部机制来知道一个线程的任务已经完成。2.这些机制主要涉及任务的生命周期管理、状态更新以及线程间的协作。 2. 任务的生命周期 1…...

Transformer介绍(一)

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

[CKS] TLS Secrets创建与挂载

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

java双向链表解析实现双向链表的创建含代码

双向链表 一.双向链表二.创建MyListCode类实现双向链表创建一.AddFirst创建&#xff08;头插法&#xff09;二.AddLast创建&#xff08;尾叉法&#xff09;三.size四.remove(指定任意节点的首位删除)五.removeAll(包含任意属性值的所有删除)六.AddIndex(给任意位置添加一个节点…...

【Kafka-go】golang的kafka应用

网络上关于go的Kafka还是比较少的今天就先出一篇入门级别的&#xff0c;之后再看看能能出一个公司业务场景中的消息流。 一、下载github.com/segmentio/kafka-go包 go get github.com/segmentio/kafka-go二、建立kafka连接 正常来说下面的配置host topic partition 应该写在…...

redis:set集合命令,内部编码,使用场景

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 前言命令SADDSMEMBERSSISMEMBERSCARDSPOPSMOVESREM集合间操作SINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE 内部编码使用场景总结 前言…...

45期代码随想录算法营总结

代码随想录训练营总结与收获 在为期60天的代码随想录训练营结束后&#xff0c;我感慨良多。这段时间不仅让我在编程技能上有了明显的提升&#xff0c;更让我在学习习惯和时间管理上有了深刻的反思和改变。 报名参加这个训练营对我来说是一个重要的监督机制。之前我总是拖延&a…...

深入理解Java中的instanceof关键字及接口新特性:方法实现的可能性

目录 引言 1. 什么是instanceof关键字&#xff1f; 1.1 语法结构 1.2 instanceof的用法示例 1.3 instanceof的应用场景 2. Java中的接口能包含方法实现吗&#xff1f; 2.1 默认方法&#xff08;Default Method&#xff09; 2.2 静态方法&#xff08;Static Method&…...

【python中如果class没有self会怎行】

python中如果class没有self会怎样TOC 在Python中&#xff0c;self是一个约定俗成的名称&#xff0c;用于表示类的实例。如果没有使用self&#xff0c;会导致以下问题&#xff1a; 1、无法访问实例属性&#xff1a; 在类的方法中&#xff0c;如果没有self&#xff0c;方法将无…...

【算法】(Python)动态规划

动态规划&#xff1a; dynamic programming。"programming"指的是一种表格法&#xff0c;而非编写计算机程序。通常解决最优化问题&#xff08;optimization problem&#xff09;。将问题拆分成若干个子问题&#xff0c;求解各子问题来得到原问题的解。适用于多阶段…...

EasyExcel 学习之 导出 “提示问题”

EasyExcel 学习之 导出 “提示问题” 现象分析解决&#xff08;伪代码&#xff09;前端 POST 实现后端实现 现象 EasyExcel 支持导出 xlsx、xls、csv 三种文件格式。在导出过程中可能发生各种异常&#xff0c;当发生异常时应该提示错误信息而非导出一个错误的文件。 分析 首…...

应用系统开发(3)低功耗四运算放大器LM324N

LM324N 是一种广泛使用的 低功耗四运算放大器,由德州仪器(Texas Instruments)和其他制造商生产。它具有四个独立的运算放大器,能够在单电源或双电源模式下运行,适合多种模拟电路应用。以下是详细信息: 芯片基本信息 型号:LM324N封装类型:常见 DIP(双列直插封装)或 SO…...

基于微信小程序的电商平台+LW示例参考

1.项目介绍 系统角色&#xff1a;管理员、普通用户功能模块&#xff1a;管理员&#xff08;用户管理、商品分类、商品管理、订单管理、系统管理等&#xff09;&#xff0c;普通用户&#xff08;个人中心、收藏、我的订单、查看商品等&#xff09;技术选型&#xff1a;SpringBo…...

[Android] Graphic Buffer 的申请

前言&#xff1a; MediaCodec 支持 texture mode&#xff0c;即MediaCodec解码video完毕后把 yuv 数据填入 GPU 共享出来的 graphic buffer 里面&#xff0c;app 会把 video 的 yuv数据 和 ui 的数据通过通过软件渲染组件(opengl等)发送给GPU 进行一并渲染。这样做的效率较低&…...

【大数据学习 | HBASE高级】storeFile文件的合并

Compaction 操作分成下面两种&#xff1a; Minor Compaction&#xff1a;是选取一些小的、相邻的StoreFile将他们合并成一个更大的StoreFile&#xff0c;对于删除、过期、多余版本的数据不进行清除。 Major Compaction&#xff1a;是指将所有的StoreFile合并成一个StoreFile&am…...

多平台编包动态引入依赖的解决方案

最近开发时遇到了这样的需求&#xff0c;A 平台需要引入一个 video.js&#xff0c;B 平台却是不需要的&#xff0c;那么面向 B 平台打包的时候把依赖装进去自然就不大合适。最好的方法是动态引入依赖&#xff0c;根据平台来判断要不要引入 动态引入依赖 很快啊&#xff0c;动…...

[单例模式]

目录 [设计模式] 单例模式 1. 饿汉模式 2. 懒汉模式 3. 单例模式的线程安全问题 [设计模式] 设计模式是软件工程中的一种常见做法, 它可以理解为"模板", 是针对一些常见的特定场景, 给出的一些比较好的固定的解决方案. 不同语言适用的设计模式是不一样的. 这里…...

速盾:游戏盾的功能和原理详解

速盾有一款专注于网络游戏安全的防护系统&#xff0c;它通过实时监测游戏网络流量和玩家行为&#xff0c;以及使用先进的算法和技术进行分析和识别&#xff0c;检测出各种外挂、作弊行为和恶意攻击&#xff0c;从而保障游戏的公平性和玩家的安全性。 速盾游戏盾的主要功能包括…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...