排名网站却搜不到/网站编辑seo
4. 逻辑控制
- 4.1 顺序结构
- 4.2 分支结构
- 4.2.1 if语句
- 判断一个数字是奇数还是偶数
- 判断一个数字是正数,负数,还是零
- 判断一个年份是否为闰年
- 4.2.2 switch 语句
- 4.3 while循环
- 打印 1 - 10 的数字
- 计算 1 - 100 的和
- 计算 5 的阶乘
- 计算1!+2!+ 3!+ 4!+ 5!
- 4.4 break
- 4.5 continue
- 4.6 for循环
- 打印1-10的数字
- 计算 1 - 100 的和
- 计算 5 的阶乘
- 计算 1! + 2! + 3! + 4! + 5!
- 4.7 do while 循环
- 4.8 输入输出
- 4.8.1 输出到控制台
- 4.8.2 从键盘输入
4.1 顺序结构
按照代码书写的顺序一行一行执行。
4.2 分支结构
4.2.1 if语句
-
语法格式1
-
语法格式2
-
语法格式3
`
判断一个数字是奇数还是偶数
import java.util.Scanner;public static void main3(String[] args) {Scanner scan = new Scanner(System.in);int num = scan.nextInt(); // 输入一个整数if (num % 2 == 0) {System.out.println(num+ " 是偶数");}else {System.out.println(num+ "是奇数");}}
判断一个数字是正数,负数,还是零
public static void main4(String[] args) {Scanner scan = new Scanner(System.in);int num = scan.nextInt();if (num > 0) {System.out.println("正数");}else if(num < 0) {System.out.println("负数");}else {System.out.println("0");}}
判断一个年份是否为闰年
public static void main(String[] args) {Scanner scan = new Scanner(System.in);int year = scan.nextInt();if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {System.out.println(year +"闰年");} else {System.out.println(year +"不是闰年");}}
注意:
- 代码风格(Java代码的风格走)
- 分号问题
public static void main(String[] args) {int x = 20;if (x == 10);{System.out.println("hehe");} // 运行结果hehe//此处多写了一个 分号, 导致分号成为了 if 语句的语句体,// 而 { } 中的代码已经成为了和一个 if 无关的代码块.}
4.2.2 switch 语句
执行流程:
- 先计算表达式的值
- 和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束
- 当表达式的值没有与所列项匹配时,执行default
public static void main2(String[] args) {int a = 1;//switch 参数里面不能是一个很复杂的参数switch (a){case 1:System.out.println("1");//break;case 2:System.out.println("2");break;default:System.out.println("sss");break;}String str = "abc";switch (str){case "abc":System.out.println("abc");break;case "124":System.out.println("124");break;default:System.out.println("输入有误");break;}//可以是枚举//面试题: 不能作为switch参数的数据类型是什么?// float double boolean long\char ch = 'a';switch (ch){}}
注意
- 多个case后的常量值不可以重复
- switch的括号内只能是以下类型的表达式:
- 本类型:byte、char、short、int,注意不能是long类型
- 引用类型:String常量串、枚举类型
4.3 while循环
基本语法格式
打印 1 - 10 的数字
public static void main(String[] args) {//打印 1 - 10 的数字int a = 1;while(a <= 10) {System.out.println(a);a++;}}
计算 1 - 100 的和
public static void main(String[] args) {int a = 1;int sum = 0;while(a <= 100) {sum += a;a++;}System.out.println(sum);}
计算 5 的阶乘
public static void main(String[] args) {//计算 5 的阶乘int i = 1;int ret = 1;while(i <= 5) {ret *= i;i++;}System.out.println("5的阶乘:"+ret);}
计算1!+2!+ 3!+ 4!+ 5!
public static void main(String[] args) {//计算1!+2!+ 3!+ 4!+ 5!int n = 1;int sum = 0;// 外层循环负责求阶乘的和while (n <= 5){int ret = 1;int i= 1;//里层循环负责完成求阶乘的细节while (i <= n) {ret *= i;i++;}sum += ret;n++;}System.out.println(sum);}
这里我们发现, 当一个代码中带有多重循环的时候, 代码的复杂程度就大大提高了. 而比较复杂的代码就更容易出错.后面我们会采用更简单的办法来解决这个问题。
注意:
- 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
- 和 if 类似, while 后面的 { 建议和 while 写在同一行.
- 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行.
4.4 break
break 的功能是让循环提前结束.
例题:找到 100 - 200 中第一个 3 的倍数
public static void main(String[] args) {// 100 - 200 中第一个 3 的倍数int num = 100;while (num <= 200) {if (num % 3 == 0) {System.out.println("找到了 3 的倍数, 为:" + num);break;}num++;}}
执行到break,退出循环。
4.5 continue
continue 的功能是跳过这次循环, 立即进入下次循环.
例题:找到 100 - 200 中所有 3 的倍数
public static void main(String[] args) {int num = 100;while (num <= 200) {if (num % 3 != 0) {num++;continue;}System.out.println("3的倍数:"+num);num++;}}
执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句.
4.6 for循环
for(表达式①;布尔表达式②;表达式③){
表达式④;
}
- 表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
- 表达式2: 循环条件,满则循环继续,否则循环结束
- 表达式3: 循环变量更新方式
打印1-10的数字
public static void main(String[] args) {for (int i = 1;i <= 10;i++) {System.out.println(i);}}
计算 1 - 100 的和
public static void main(String[] args) {int sum = 0;for (int i = 0; i <= 100; i++) {sum += i;}System.out.println("sum = "+sum);}
计算 5 的阶乘
public static void main(String[] args) {int ret = 1;for (int i = 1; i < 6; i++) {ret *= i;}System.out.println("5的阶乘:"+ret);}
计算 1! + 2! + 3! + 4! + 5!
public static void main(String[] args) {int sum = 0;for (int j = 1; j <= 5; j++) {int ret = 1;for (int i = 1; i < 6; i++) {ret *= i;}sum += ret;}System.out.println("1-5的阶乘和:"+sum);}
注意:
- 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
- 和 if 类似, for 后面的 { 建议和 while 写在同一行.
- 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行.
- 和while循环一样,结束单趟循环用continue,结束整个循环用break
4.7 do while 循环
do{
循环语句;
}while(循环条件);
先执行循环语句, 再判定循环条件,循环条件成立则继续执行,否则循环结束。
比如:打印1-10
public static void main(String[] args) {int i = 1;do {System.out.println(i);i++;} while (i <= 10);}
注意:
- do while 循环最后的分号不要忘记
- 一般 do while 很少用到, 更推荐使用 for 和 while.
4.8 输入输出
4.8.1 输出到控制台
public static void main(String[] args) {System.out.println("输出换行"); System.out.print("输出不带换行"); System.out.printf("%s\n", "格式化输出"); }
- println 输出的内容自带 \n, print 不带 \n
- printf 的格式化输出方式和 C 语言的 printf 是基本一致的.
4.8.2 从键盘输入
使用 Scanner 读取字符串/整数/浮点数
public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入你的姓名:");String name = sc.nextLine();System.out.println("请输入你的年龄:");int age = sc.nextInt();System.out.println("请输入你的工资:");float salary = sc.nextFloat();System.out.println("你的信息如下:");System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);sc.close(); // 注意, 要记得调用关闭方法}
使用 Scanner 循环读取 N 个数字
public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNextInt()) {int a = sc.nextInt();System.out.println(a);}}
使用 Scanner 循环读取 N 个数字,并求取其平均值
public static void main(String[] args) {Scanner sc = new Scanner(System.in);int sum = 0;int num = 0;while (sc.hasNextInt()) {int tmp = sc.nextInt();sum += tmp;num++;}System.out.println("sum="+sum);System.out.println("avg="+sum/num);sc.close();}
注意:
当循环输入多个数据的时候, 使用 ctrl + z 来结束输入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl+ d)。
相关文章:

【0基础学Java第四课】-- 逻辑控制
4. 逻辑控制 4.1 顺序结构4.2 分支结构4.2.1 if语句判断一个数字是奇数还是偶数判断一个数字是正数,负数,还是零判断一个年份是否为闰年 4.2.2 switch 语句 4.3 while循环打印 1 - 10 的数字计算 1 - 100 的和计算 5 的阶乘计算1!2࿰…...

C++中的std::cout与std::cerr、std::clog
本文用于记录C中std::cout与std::cerr、std::clog的异同 std::cerr 是C标准库中的标准错误输出流,用于向标准错误设备输出信息,通常用于报告程序的错误和异常情况。与之相对的,std::cout 是标准输出流,用于向标准输出设备输出一般…...

No authorization token was found
今天遇到了一个问题,我把前后端逻辑都理了一遍,开始怀疑后端,后端肯定没错了,把前端理了一遍,ok前后端没错,我错。登录哪里需要的token????把我搞懵逼了。 测…...

Kubernetes概述及其组件/核心组件
目录 1、K8S 是什么? 2、为什么要用 K8S? 3、k8s的特性 4、Kubernetes 集群架构与组件 5、核心组件 Master 组件 ●Kube-apiserver ●Kube-controller-manager ●Kube-scheduler 配置存储中心 ●etcd Node 组件 ●Kubelet ●Kube-Proxy ●docker 或…...

毫米波雷达实时采集教
https://www.cnblogs.com/dhyc/p/10510876.html 毫米波雷达实时采集教程---- 以及好网站总结:资料分享——RSP1 多普勒雷达开发套件...

Java进阶(HashMap)——面试时HashMap常见问题解读 结合源码分析
前言 List、Set、HashMap作为Java中常用的集合,需要深入认识其原理和特性。 本篇博客介绍常见的关于Java中HashMap集合的面试问题,结合源码分析题目背后的知识点。 关于List的博客文章如下: Java进阶(List)——面试…...

Kotlin 使用@BindingAdapter编译出错
在 Kotlin 中使用 BindingAdapter 注解时,需要确保你的项目正确配置了 Data Binding。 首先,请确保在项目的 build.gradle 文件中启用了 Data Binding: android {// ...dataBinding {enabled true} }接下来,请确保你在正确的地…...

Qt之信号和槽,connect参数分析
connect()方法 Qt进行信号和槽连接,有以下几种方法: static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType Qt::AutoConnection); static QMetaObj…...

Python学习笔记—元组
1、元组定义 元组使用()来定义,元素在()括号内,用逗号隔开 空元组定义,元组名() 注:当元组只有1个元素的时候,需要在元素后面加逗号,…...

【C++项目】高并发内存池第五讲内存回收释放过程介绍
内存回收 1.ThreadCache2.CentralCache3.PageCache 项目源代码:高并发内存池 1.ThreadCache void ThreadCache::Deallocate(void* ptr, size_t size) {assert(ptr);assert(size < MAX_BYTES);//计算在哪号桶中,然后插入进去size_t index SizeClass…...

[毕设记录]@学术工具体验:Sread.ai
我是在查RAG相关的时候,在知乎上面看到了这篇回答:浅谈生成式 AI 技术:检索增强生成 RAG - MarvinZ的文章 - 知乎 https://zhuanlan.zhihu.com/p/659248219 然后在末尾看到了这个 sread.ai 在作者主页看到了他关于这个产品的介绍:…...

uboot - 驱动开发 - 驱动模型
说明 类似于linux,为了规范、统一驱动适配和驱动接口调用,uboot定义了一套驱动模型(Driver Model),简称DM。本文基于:u-boot-2021.10。 优点 为同一类ip的驱动定义了统一的操作接口,DM在软件层面做了一定的抽象。分…...

windows 操作系统命令积累
1. 按 "prt sc" 键 截屏 2. 按 "fn" 键让浏览器进入全屏模式,再次按 "fn" 键让浏览器退出全屏模式( ps:惠普笔记本上是 "fn" "f11" ) 3. ipconfig 查看ip信息 4. 查看指定端口被什么进程占用...

数据结构单链表的实现(C语言)
目录 1.实现的接口和功能2.代码块 1.实现的接口和功能 //打印链表 void SLTPrint(SLTNode** phead); //头插 void PushFont(SLTNode** phead, SLTDataType x); //尾插 void PushBack(SLTNode** phead, SLTDataType x); //头删 void PopFont(SLTNode** phead); //尾删 void Pop…...

Postman的高级使用,傻瓜式学习【下】
目录 前言 1、全局变量、环境变量 1.1、概念: 1.2、如何设置全局变量、环境变量 1.3、获取全局变量、环境变量 1.4、案例1:手动设置变量,请求参数获取 1.5、案例2:代码设置变量,代码获取变量 2、Postman读取外部…...

Qt:关闭对话框,动画实现窗体逐渐缩小到消失
关键技术: 1、使用QPropertyAnimation对象,实现动画效果,逐渐缩小窗体尺寸,以及透明度; 2、在对话框缩小时,要将界面中的控件都隐藏起来,并且将对话框布局的Margin修改成0 代码如下ÿ…...

在Windows上 ciphey安装(详细版)
文章目录 前言 一、不想卸载原有的python版本? 二、安装步骤 1.安装python 2.创建虚拟环境vnev 3.在ciphey的虚拟环境中进行激活 4.安装ciphey 三、参数列表 总结 前言 提示:安装了好几次,但是都没安装成功,我使用了三个电脑p…...

【lesson2】数据库的库操作
文章目录 库操作创建数据库删除数据库字符集和校验规则手动设置字符集和校验集不同字符集和校验集之间的区别修改数据库字符集和校验集备份和恢复数据库 库操作 创建数据库 删除数据库 字符集和校验规则 创建数据库的时候,有两个编码集: 1.数据库编码集…...

Android Studio Giraffe解决gradle reload failed问题
settings.gradle.kts中 pluginManagement {repositories {google()mavenCentral()gradlePluginPortal()} } dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {google()mavenCentral()} } 各增加三行内容&#x…...

刷题笔记day06-哈希表
242.有效的字母异位词 // 思路2:排序后在比较是否相等import ("sort""fmt""io""strings""os" )func isAnagram(s string, t string) bool {s1, s2 : []byte(s), []byte(t)// 从小到大排序sort.Slice(s1, func(i…...

springboot项目中如何实现过滤器鉴权
通常来说鉴权都是写在网关当中,对于单体应用也可以在后台服务中通过一个过滤器实现。其实过程与网关当中的没什么不同,只是在gateway当中目前是基于netty响应式的。过程如下: 一、实现Filter接口 定义自己的过滤器,并且实现Filt…...

【rust/esp32】在idf中使用embedded-graphics控制st7789 LCD屏幕
文章目录 说在前面模块详情准备工作开始编译烧录结果 说在前面 esp32版本:s3运行环境:esp-idf(std)开发环境:wsl2LCD模块:ST7789V2 240*280 LCDgithub地址:这里 模块详情 某宙的esp32s3开发板 某雪的1.69inch LCD模块…...

YOLOv8如何添加注意力模块?
分为两种:有参注意力和无参注意力。 eg: 有参: import torch from torch import nnclass EMA(nn.Module):def __init__(self, channels, factor8):super(EMA, self).__init__()self.groups factorassert channels // self.groups > 0self.softmax …...

用LibreOffice在excel中画折线图
数据表格如下。假设想以x列为横坐标,y1和y2列分别为纵坐标画折线图。 选择插入-》图表: 选择折线图-》点和线,然后点击“下一步”: 选择:列中包含数据序列,然后点击完成(因为图挡住了数据…...

RabbitMQ 链接管理-发布者-消费者
RabbitMQ连接管理器 using RabbitMQ.Client; using System; public class RabbitMQConnectionManager { private readonly IConnectionFactory _connectionFactory; private IConnection _connection; public RabbitMQConnectionManager(string hostName) { …...

JAVA中的垃圾回收器(3)----ZGC
一)ZGC介绍:是JAVA11新引入的低延迟垃圾收集器 ZGC是一款基于Regin的,暂时没有分代概念的,使用了读屏障,颜色指针等技术来实现并发的标记清除和标记整理算法,一低延迟为主要目标的一款垃圾回收器 ZGC的regin可以分为是下图中具有大…...

IDEA 如何运行 SpringBoot 项目
步骤一:配置 Maven 第一步:用 IDEA 打开项目,准备配置 maven 环境 ,当然如果本地没有提前配置好 maven,就用 IDEA 默认的配置即可 配置 maven 步骤 情况 1:如果本地没有配置过 maven,可以保持如…...

Linux MeterSphere测试平台远程访问你不会?来试试这篇文章
🎬 鸽芷咕:个人主页 🔥 个人专栏:《粉丝福利》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网…...

15.k8s集群防火墙配置
防火墙配置 ######################## # master节点防火墙设置 ######################### 所有master节点开放相关防火墙端口 $ firewall-cmd --zonepublic --add-port6443/tcp --permanent $ firewall-cmd --zonepublic --add-port2379-2380/tcp --permanent $ firewall-cmd…...

Python beautifulsoup网络抓取和解析cnblog首页帖子数据
视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium 我们抓取下https://www.cnblogs.com/ 首页所有的帖子信息,包括帖子标题,帖子地址,以及帖子作者信息。 首先用requests获取网页文件࿰…...