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博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...

边缘计算医疗风险自查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(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

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

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

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
全面解析各类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? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...