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. 单例模式的线程安全问题 [设计模式] 设计模式是软件工程中的一种常见做法, 它可以理解为"模板", 是针对一些常见的特定场景, 给出的一些比较好的固定的解决方案. 不同语言适用的设计模式是不一样的. 这里…...
速盾:游戏盾的功能和原理详解
速盾有一款专注于网络游戏安全的防护系统,它通过实时监测游戏网络流量和玩家行为,以及使用先进的算法和技术进行分析和识别,检测出各种外挂、作弊行为和恶意攻击,从而保障游戏的公平性和玩家的安全性。 速盾游戏盾的主要功能包括…...
Spleeter:音频分离的革命性工具
目录 什么是Spleeter?Spleeter的工作原理Spleeter的应用场景Spleeter的技术优势Spleeter的挑战与局限性结论 什么是Spleeter? Spleeter 是一个由 Deezer 开发的开源音频源分离工具。它基于深度学习技术,尤其是卷积神经网络(CNN&a…...
【笔记】自动驾驶预测与决策规划_Part6_不确定性感知的决策过程
文章目录 0. 前言1. 部分观测的马尔可夫决策过程1.1 POMDP的思想以及与MDP的联系1.1.1 MDP的过程回顾1.1.2 POMDP定义1.1.3 与MDP的联系及区别POMDP 视角MDP 视角决策次数对最优解的影响 1.2 POMDP的3种常规解法1.2.1 连续状态的“Belief MDP”方法1. 信念状态的定义2. Belief …...
openresty入门教程:access_by_lua_block
在OpenResty中,access_by_lua_block 是一个功能强大的指令,它允许你在Nginx的访问控制阶段执行Lua脚本。这个阶段发生在Nginx处理请求的过程中,紧接在rewrite阶段之后,但在请求被传递到后端服务器(如PHP、Node.js等&am…...
Caused by: org.apache.flink.api.common.io.ParseException: Row too short:
Flink版本 1.17.2 错误描述 Caused by: org.apache.flink.api.common.io.ParseException: Row too short: 通过flink中的flinkSql直接使用对应的connector去获取csv文件内容,报获取的数据太短了 可能原因 1.创建的表字段多于csv文件当中的表头 定位 在获取csv…...
hbase的安装与简单操作
好的,这里是关于 HBase 的安装和基本操作的详细步骤,分成几个更清晰的阶段: 第一部分:安装和配置 HBase 1. 环境准备 HBase 依赖于 Hadoop,因此首先确保 Hadoop 已经正确安装和配置。如果没有安装,请先下…...
PySpark本地开发环境搭建
一.前置事项 请注意,需要先实现Windows的本地JDK和Hadoop的安装。 二.windows安装Anaconda 资源:Miniconda3-py38-4.11.0-Windows-x86-64,在window使用的Anaconda资源-CSDN文库 右键以管理员身份运行,选择你的安装路径&#x…...
【进阶】Stable Diffusion 插件 Controlnet 安装使用教程(图像精准控制)
Stable Diffusion WebUI 的绘画插件 Controlnet 最近更新了 V1.1 版本,发布了 14 个优化模型,并新增了多个预处理器,让它的功能比之前更加好用了,最近几天又连续更新了 3 个新 Reference 预处理器,可以直接根据图像生产…...
调试、发布自己的 npm 包
查看 npm 的配置 npm config ls登录 whoami 查看当前登录的用户 npm whoamiaduser 登录 adduser 有以下参数: –scope 作用域–registry 注册地址 默认地址:https://registry.npmjs.org/,也可通过.npmrc文件配置 npm login 是 …...
拓扑学与DNA双螺旋结构的奇妙连接:从算法到分子模拟
拓扑的形变指的是通过连续地拉伸、弯曲或扭曲物体而不进行撕裂或粘合来改变其形状的一种数学变换。拓扑形变属于拓扑学的一个分支,研究在这些操作下保持不变的性质。简单来说,它关注的是物体“形状的本质”,而不是具体的几何形状。 拓扑形变…...
mysql数据库(四)单表查询
单表查询 文章目录 单表查询一、单表查询1.1 简单查询1.2where1.3group by1.4having1.5order by1.6limit 一、单表查询 记录的查询语法如下: SELECT DISTINCT(去重) 字段1,字段2… FROM 表名 WHERE 筛选条件 GROUP BY 分组 HAVING 分组筛选 ORDER BY 排序 LIMIT 限…...
做外国的独立网站怎么推广/百度搜索关键词热度
2019独角兽企业重金招聘Python工程师标准>>> http://flywind.org/newtechnologydetail/175 转载于:https://my.oschina.net/flywind/blog/82647...
怎么做中英文的网站/直链平台
#目录 文章目录1. Redis安装约定2. 下载Redis安装包3. 解压并进入安装包中查看重要的文件及目录4. 正式安装redis5. 安装完成后查看安装目录6. 配置环境变量7. 拷贝安装包目录下的配置文件到安装目录的conf目录下8. 启动redis服务9. 再次启动redis服务10. 检查redis服务是否启动…...
怎样做金融网站/b站怎么推广
一、问题描述 当引用第三方.cpp/.h文件到VC 2019的MFC项目中,编译时总会报忘记向源中添加“#include “pch.h””的报错提醒。 详细错误为: 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C1010 在查找预编译头时遇到意外的文件结尾。是否忘记了向…...
phpnow 安装wordpress/电脑培训学校哪家最好
叮你非常想学习剪视频,将日常生活中的美好做成vlog留存下来?但是你的电脑带不动pr?手机剪辑APP经常黑屏、卡,剪了半天功亏一篑?看了再多的视频剪辑APP推荐,仍然剪不好一个视频?我是一个重度手机美图、视频…...
dedecms网站后台管理系统/国家免费技能培训平台
Apache http安装 下载地址Apache Haus Downloads 选择自己系统的Apache版本下载安装。 1. 设置根目录或端口 1.1 进入zip解压后的目录,打开conf目录下的httpd.conf文件; 1.2 修改目录: Define SRVROOT "/Apache24"; 修改主配置文件&…...
58同城通辽做网站/南京 seo 价格
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一…...