当前位置: 首页 > 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;从而保障游戏的公平性和玩家的安全性。 速盾游戏盾的主要功能包括…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...