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 ; 单行逻辑大括号可以省略;但是不建议省略; 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(框架)包含在: import QtQuick.Controls继承自Pane控件。用于在可视框架内布局一组逻辑控件。简单来说就是用来包裹和突出显示其他可视元素。Frame不提供自己的布局,但需要自己对元素位置进行设置和定位,例如通过…...

Web API之DOM
DOM 一.认识DOM二.获取元素三.事件基础四.操作元素(1).改变元素内容(2).修改元素属性(str、herf、id、alt、title)(3).修改表单属性(4).修改样式属性操作(5).小结 五.一些思想(1).排他思想(2).自定义属性的操作 六.节点操作1.认识2.节点层级关系3.创建和添加、删除、…...
windows驱动开发-内核编程技术汇总(六)
在驱动程序中使用文件 内核模式组件通过其对象名称引用文件,该对象名称是连接到文件的完整路径的 \DosDevices 。 在 Microsoft Windows 2000 及更高版本的操作系统上, \?? 等效于 \DosDevices。例如,C:\WINDOWS\example.txt 文件的对象名…...

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

【软件工程】详细设计
目录 前言详细设计算法设计工具——判定表 前言 软件工程生命周期分为八个阶段: 问题定义—>可行性研究—>需求分析 —>概要设计—>详细设计—>编码与单元测试 —>综合测试—>软件维护 这节我们讲的是软件开发流程中的一个阶段,需求…...
在K8S中,集群可以做哪些优化?
在Kubernetes(简称K8s)集群中,可以进行多种优化以提升性能、稳定性和资源利用率。以下是一些常见的优化措施: 控制面组件优化: kube-apiserver 高可用与扩展:通过配置多个API服务器实例并使用负载均衡器分发…...

【C++】从零开始认识多态
送给大家一句话: 一个犹豫不决的灵魂,奋起抗击无穷的忧患,而内心又矛盾重重,真实生活就是如此。 – 詹姆斯・乔伊斯 《尤利西斯》 _φ(* ̄ω ̄)ノ_φ(* ̄ω ̄)&…...
为什么叫“机器学习”Machine Learning 而不是“计算机学习”——深度学习Note
有一门学科“机器学习”火了起来,它是计算机科学与数学结合的产物,它的目的是使计算机“聪明”起来,实现人工智能。可是,令人困惑的是它明明就是计算机学习,为什么不叫“计算机学习”而叫“机器学习”呢?这…...

Spring Boot集成RabbitMQ-之6大模式总结
A.集成 一:添加依赖 在pom.xml文件中添加spring-boot-starter-amqp依赖,以便使用Spring Boot提供的RabbitMQ支持: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp&…...

后端开发面经系列 -- 滴滴C++一面面经
滴滴C一面面经 公众号:阿Q技术站 来源:https://www.nowcoder.com/feed/main/detail/38cf9704ef084e27903d2204352835ef 1、const在C和C区别,const定义的类成员变量如何初始化? 区别 C中的const: 在C中,c…...

Three.js的几何形状
在创建物体的时候,需要传入两个参数,一个是几何形状【Geometry】,一个是材质【Material】 几何形状主要是存储一个物体的顶点信息,在Three中可以通过指定一些特征来创建几何形状,比如使用半径来创建一个球体。 立方体…...
设计模式——单例模式(Singleton)
单例模式(Singleton Pattern)是设计模式中的一种,它确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。这种模式在多种场景下都非常有用,比如配置文件的读取、数据库连接的创建、线程池的管理等。 实现…...

springboot3项目练习详细步骤(第二部分:文章分类模块)
新增文章分类 接口文档 业务实现 参数校验 文章分类列表 接口文档 业务实现 获取文章分类详情 接口文档 业务实现 更新文章分类 接口文档 业务实现 分组校验 问题 概念 实现步骤 总结 删除文章分类 接口文档 业务实现 该模块大部分请求的路径相同&…...
VUE中父组件向子组件进行传值
在 Vue 中,父组件向子组件传值主要通过在子组件的标签上绑定属性(props)的方式来实现。以下是一个具体的示例。 父组件(ParentComponent.vue): <template><div><!-- 父组件中使用子组件,并传…...

alpine安装中文字体
背景 最近在alpine容器中需要用到中文字体处理视频,不想从本地拷贝字体文件, 所以找到了一个中文的字体包font-droid-nonlatin,在此记录下。 安装 apk add font-droid-nonlatin安装好后会出现在目录下/usr/share/fonts/droid-nonlatin/ 这…...
JavaScript学习—JavaScript高级
原型链和继承 在 JavaScript 中,每个对象都有一个原型(prototype),这个原型指向另一个对象。这个链式的原型关系被称为原型链。当访问一个对象的属性时,如果该对象没有该属性,它会沿着原型链向上查找&…...
CompletableFuture使用案例
优化代码时,除了Async注解,项目中如何使用多线程异步调用? 举个例子,去餐厅吃饭的时候。先点餐,厨师做菜,在厨师做菜的时候打游戏,然后根据厨师做的菜的口味去买矿泉水还是可乐。这样࿰…...
安卓使用so库
最近需要给小伙伴扫盲一下如何使用Android Studio 生成一个SO文件,网上找了很多都没有合适的样例,那只能自己来写一个了。 原先生成SO是一个很麻烦的事情,现在Android Studio帮忙做了很多的事情,基本只要管好自己的C代码即可。 …...

【介绍下LeetCode的使用方法】
🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...