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

java中的条件、循环和scanner类

if else ;

单行逻辑大括号可以省略;但是不建议省略;

public static void main(String[] args) {boolean bool1 = (Math.random() * 1000) % 2 >= 1;System.out.println((Math.random() * 1000) % 2 + "-" +bool1);if(bool1) {System.out.println('1');} else {System.out.println("2");boolean bool2 = (Math.random() * 1000) % 2 >= 1;if(bool2)System.out.println("3");elseSystem.out.println("4");}boolean bool3 = false;if(bool3 = true) {System.out.println("使用单引号,将true复制给bool3,bool3为true则执行此行");}if(bool3 = false) {System.out.println("使用单引号,将true复制给bool3,bool3为false则不执行此行");}}

*****字符串比较不要用 == 要用equals;

String str = “asd”; str.equals(“asd”);

“==” 表示的是不是一个东西,equals标识的是内容是否一样;

Random.java 中 :如何获取一个随机数;

public class Random {public static void main(String[] args) {// method1:Math.random();返回一个double值:[0.0,1.0)double d1 = Math.random();System.out.println(d1);// int i = (int)(d1 * 100);//[0,99];int i = (int)(d1 * 101);//[0,100];System.out.println(i);// 通用公式:获取[a, b];
//        int res = (int)(Math.random() * (b - a + 1) + a);}
}

// 通用公式:获取[a, b];*****

  • int res = (int)(Math.random() * (b - a + 1) + a);

switch - case :选择结构;

比较的是==;但是字符串(equals)也能进入逻辑;

switch(表达式);

表达式只能是特定的数据类型;byte/short/char/int;

可以认为就是int;见相关代码:switch.java;之后的新特性(枚举、String)

case 常量: (只能是常量)

default;是可选的而且是灵活的!!!可以放在任何位置;

但是一般都放最后;

public class SwitchTest {public static void main(String[] args) {int i1 = 99;switch (i1) {    //括号中是表达式,而非条件表达式;// case 常量1;、case 98:System.out.println("98");break;case 99:System.out.println("99");default:System.out.println("穿透");// break; //有无都一样;一般加上~?}//比较的是==;但是字符串也能进入逻辑(jdk7.0之后可以支持);String str = "99999";switch (str) {    //括号中是表达式,而非条件表达式;// case 常量1;、case "99998":System.out.println("98");break;default:System.out.println("穿透");// break; //有无都一样;一般加上~?// default;是可选的而且是灵活的!!!可以放在任何位置;(这里就不会穿透了)case "99999":System.out.println("99");}/*表达式只能是特定的数据类型;byte/short/char/int;可以认为就是int;之后的新特性(枚举、String)*//*double db = 99999.99;switch(db) {	//括号中是表达式,而非条件表达式;// case 常量1;、case 99998:System.out.println("98");break;case 99999.99:System.out.println("99");default:System.out.println("穿透");// break; //有无都一样;一般加上~?}*/// : 错误: 不兼容的类型: 从double转换到int可能会有损失/*boolean bool = true;switch(bool) {	//不兼容的类型: boolean无法转换为intcase true:System.out.println("1");default:System.out.println("2");}*/int score = 60;switch (score / 60) {case 0:System.out.println("不及格");break;case 1:System.out.println("及格");}System.out.println("===========================");/*利用穿透*/}
}
循环结构:

.for/while/do-while循环;

–for

for(初始化条件;循环条件;迭代部分) {
循环体
}

public static void main(String[] args) {for(;;) {System.out.println("脦脼脤玫录镁拢卢碌楼麓脦脩颅禄路");if(true) break;}for(int i=0;i<10;i++,i++){System.out.println(i);}int res = 0;for(int i=1;i<11;i++) {if(i % 2 == 0) {System.out.println(i);res+=i;}}System.out.println(res);System.out.println("===============================");for(int i =100;i< 1000;i++) {int gw = i%10;int sw = i / 10 % 10;int bw = i / 100;if(i == (gw*gw*gw + sw*sw*sw + bw *bw* bw)) {System.out.println(i);}}}
For
循环结构中;break;结束循环;
初始化条件
while
while(循环条件) {
循环体
迭代
}

*水仙花数;For.java;

可以和for循环相互转换;也可以使用break中断循环;
可以互相转换,就和拉姆达表达式一样可以转换;看情况使用;

do while;

do{
、、无论是否符合条件,先来执行一次。
}while();
public class WhileTest {public static void main(String[] args) {while(true) {System.out.println(1);break;}int i = 0;while(i < 10) {System.out.println(i);i++;}System.out.println("=========");int n = 13;int m = 14;for(int j = 1;;j++) {if((n*j) % m == 0) {System.out.println(n*j);break;}}do{// break; //不可放这里,后面会不执行,报错;System.out.println(1);break;} while(true);}
}

推荐使用:

for: 有明显的循环次数;

while: 没有明显的循环次数;

do-while: 循环块至少执行一次,考虑可以使用;

“无限循环”,嵌套循环;

不确定循环多少次时,可以使用。

while(true){

结合break使用;

};

for(;😉{

//结合break使用;

};

嵌套循环:
continue
if(i % 2 != 0) {continue; //System.out.println(i);// 编译错误: 无法访问的语句;
}
// 放在外面就可以;
System.out.println(i);

注意: *****break和continue;后面不能加执行语句;
见代码:Looptest.java;

标签

带标签的break;continue;见代码LoopTest.java;

同目录下的java文件,不用import导包,直接使用类方法

public class LoopTest {public static void main(String[] args) {// for(){	//错误: 非法的表达式开始;for(;;){// while(true){  //和for效果相同;// Scanner scan = new Scanner(System.in);// int i = scan.nextInt();System.out.println(1);break;}//while() {	//错误: 非法的表达式开始while(true) {System.out.println(2);break;}System.out.println("========");// 嵌套循环;for(int i = 1;i<6;i++) {for(int j =0; j<i;j++) {System.out.print("*");}System.out.println();}System.out.println("========");for(int i = 5;i>0;i--) {for(int j =0; j<i;j++) {System.out.print("*");}System.out.println();}System.out.println("========");int ii =0;for(int i =0;i<10;i++) {if(i % 2 != 0) {continue;//System.out.println(i);// 编译错误: 无法访问的语句;}// 放在外面就可以;System.out.println(i);}label:for(int i = 0;i<10;i++) {for(int j =0;j<4;j++) {if(j > 2) {continue label;}System.out.print(j);}System.out.println();}}
}

Scanner类的使用方法;

1、导包:import java.util.Scanner;

2、创建Scanner类的实例;

3、调用scanner类的方法,获取指定类型的变量;

4、关闭资源(避免泄露)。调用close;

—system.lang 包是常用的不用导包;其他包下面的都需要导包;

String str1 = scanner.next(); //具体scanner方法见文档;一般看next方法;

//scanner 没有提供获取char类型的方法;

public class ScannerTest {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入一个字符串: \n");String str1 = scanner.next(); //阻塞住下面;直到写入;System.out.println("str1:" + str1);System.out.println("请输入一个int: \n");// 输入类型不符合时会报错;int i1 = scanner.nextInt();System.out.println(i1);System.out.println("请输入一个double: \n");double d1 = scanner.nextDouble();System.out.println(d1);System.out.println("请输入一个boolean: \n");// 输入类型不符合时会报错;boolean bol1 = scanner.nextBoolean();System.out.println(bol1);System.out.println("请输入一个char: \n");char c1 = scanner.next().charAt(0); //scanner 没有提供获取char类型的方法;System.out.println(c1);// 关闭资源;scanner.close();// 输入类型不符合时会报错}
}
  • GC(垃圾回收) 不会认为Scanner 是一个垃圾;可能不会回收;

相关文章:

java中的条件、循环和scanner类

if else ; 单行逻辑大括号可以省略&#xff1b;但是不建议省略&#xff1b; public static void main(String[] args) {boolean bool1 (Math.random() * 1000) % 2 > 1;System.out.println((Math.random() * 1000) % 2 "-" bool1);if(bool1) {System.out.prin…...

【Qt QML】Frame组件

Frame&#xff08;框架&#xff09;包含在&#xff1a; import QtQuick.Controls继承自Pane控件。用于在可视框架内布局一组逻辑控件。简单来说就是用来包裹和突出显示其他可视元素。Frame不提供自己的布局&#xff0c;但需要自己对元素位置进行设置和定位&#xff0c;例如通过…...

Web API之DOM

DOM 一.认识DOM二.获取元素三.事件基础四.操作元素(1).改变元素内容(2).修改元素属性(str、herf、id、alt、title&#xff09;(3).修改表单属性(4).修改样式属性操作(5).小结 五.一些思想(1).排他思想(2).自定义属性的操作 六.节点操作1.认识2.节点层级关系3.创建和添加、删除、…...

windows驱动开发-内核编程技术汇总(六)

在驱动程序中使用文件 内核模式组件通过其对象名称引用文件&#xff0c;该对象名称是连接到文件的完整路径的 \DosDevices 。 在 Microsoft Windows 2000 及更高版本的操作系统上&#xff0c; \?? 等效于 \DosDevices。例如&#xff0c;C:\WINDOWS\example.txt 文件的对象名…...

Windows Server 2019虚拟机安装

目录 第一步、准备工作 第二步、部署虚拟机 第三步、 Windows Server 2019系统启动配置 第一步、准备工作 下载Windows Server 2019系统镜像 官网下载地址&#xff1a;Windows Server 2019 | Microsoft Evaluation Center VMware Workstation 17下载地址&#xff1a; 链…...

【软件工程】详细设计

目录 前言详细设计算法设计工具——判定表 前言 软件工程生命周期分为八个阶段&#xff1a; 问题定义—>可行性研究—>需求分析 —>概要设计—>详细设计—>编码与单元测试 —>综合测试—>软件维护 这节我们讲的是软件开发流程中的一个阶段&#xff0c;需求…...

在K8S中,集群可以做哪些优化?

在Kubernetes&#xff08;简称K8s&#xff09;集群中&#xff0c;可以进行多种优化以提升性能、稳定性和资源利用率。以下是一些常见的优化措施&#xff1a; 控制面组件优化&#xff1a; kube-apiserver 高可用与扩展&#xff1a;通过配置多个API服务器实例并使用负载均衡器分发…...

【C++】从零开始认识多态

送给大家一句话&#xff1a; 一个犹豫不决的灵魂&#xff0c;奋起抗击无穷的忧患&#xff0c;而内心又矛盾重重&#xff0c;真实生活就是如此。 ​​​​ – 詹姆斯・乔伊斯 《尤利西斯》 _φ(*&#xffe3;ω&#xffe3;)&#xff89;_φ(*&#xffe3;ω&#xffe3;)&…...

为什么叫“机器学习”Machine Learning 而不是“计算机学习”——深度学习Note

有一门学科“机器学习”火了起来&#xff0c;它是计算机科学与数学结合的产物&#xff0c;它的目的是使计算机“聪明”起来&#xff0c;实现人工智能。可是&#xff0c;令人困惑的是它明明就是计算机学习&#xff0c;为什么不叫“计算机学习”而叫“机器学习”呢&#xff1f;这…...

Spring Boot集成RabbitMQ-之6大模式总结

A.集成 一&#xff1a;添加依赖 在pom.xml文件中添加spring-boot-starter-amqp依赖&#xff0c;以便使用Spring Boot提供的RabbitMQ支持&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp&…...

后端开发面经系列 -- 滴滴C++一面面经

滴滴C一面面经 公众号&#xff1a;阿Q技术站 来源&#xff1a;https://www.nowcoder.com/feed/main/detail/38cf9704ef084e27903d2204352835ef 1、const在C和C区别&#xff0c;const定义的类成员变量如何初始化&#xff1f; 区别 C中的const&#xff1a; 在C中&#xff0c;c…...

Three.js的几何形状

在创建物体的时候&#xff0c;需要传入两个参数&#xff0c;一个是几何形状【Geometry】&#xff0c;一个是材质【Material】 几何形状主要是存储一个物体的顶点信息&#xff0c;在Three中可以通过指定一些特征来创建几何形状&#xff0c;比如使用半径来创建一个球体。 立方体…...

设计模式——单例模式(Singleton)

单例模式&#xff08;Singleton Pattern&#xff09;是设计模式中的一种&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问这个唯一实例。这种模式在多种场景下都非常有用&#xff0c;比如配置文件的读取、数据库连接的创建、线程池的管理等。 实现…...

springboot3项目练习详细步骤(第二部分:文章分类模块)

新增文章分类 接口文档 业务实现 参数校验 文章分类列表 接口文档 业务实现 获取文章分类详情 接口文档 业务实现 更新文章分类 接口文档 业务实现 分组校验 问题 概念 实现步骤 总结 删除文章分类 接口文档 业务实现 该模块大部分请求的路径相同&…...

VUE中父组件向子组件进行传值

在 Vue 中&#xff0c;父组件向子组件传值主要通过在子组件的标签上绑定属性&#xff08;props&#xff09;的方式来实现。以下是一个具体的示例。 父组件&#xff08;ParentComponent.vue&#xff09;: <template><div><!-- 父组件中使用子组件&#xff0c;并传…...

alpine安装中文字体

背景 最近在alpine容器中需要用到中文字体处理视频&#xff0c;不想从本地拷贝字体文件&#xff0c; 所以找到了一个中文的字体包font-droid-nonlatin&#xff0c;在此记录下。 安装 apk add font-droid-nonlatin安装好后会出现在目录下/usr/share/fonts/droid-nonlatin/ 这…...

JavaScript学习—JavaScript高级

原型链和继承 在 JavaScript 中&#xff0c;每个对象都有一个原型&#xff08;prototype&#xff09;&#xff0c;这个原型指向另一个对象。这个链式的原型关系被称为原型链。当访问一个对象的属性时&#xff0c;如果该对象没有该属性&#xff0c;它会沿着原型链向上查找&…...

CompletableFuture使用案例

优化代码时&#xff0c;除了Async注解&#xff0c;项目中如何使用多线程异步调用&#xff1f; 举个例子&#xff0c;去餐厅吃饭的时候。先点餐&#xff0c;厨师做菜&#xff0c;在厨师做菜的时候打游戏&#xff0c;然后根据厨师做的菜的口味去买矿泉水还是可乐。这样&#xff0…...

安卓使用so库

最近需要给小伙伴扫盲一下如何使用Android Studio 生成一个SO文件&#xff0c;网上找了很多都没有合适的样例&#xff0c;那只能自己来写一个了。 原先生成SO是一个很麻烦的事情&#xff0c;现在Android Studio帮忙做了很多的事情&#xff0c;基本只要管好自己的C代码即可。 …...

【介绍下LeetCode的使用方法】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...