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 是一个垃圾;可能不会回收;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/7551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

达梦数据库操作笔记(ubuntu)

1、达梦数据安装之后无法在终端输入disql命令解决办法&#xff1a; 解决&#xff1a;.bash_profile需要配置安装目录&#xff0c;并且确保$DM_HOME/tool写在了$DM_HOME/bin的后面&#xff1b; 文件中需要追加&#xff1a; --检查环境变量, 达梦数据库默认安装位置&#xff1…

ogv转mp4怎么转?只需3个步骤~

OGV&#xff08;Ogg Video&#xff09;是一种开源的视频文件格式&#xff0c;起源于对数字媒体领域的开放标准的需求。作为Ogg多媒体容器的一部分&#xff0c;OGV的设计初衷是提供一种自由、高质量的视频编码方案&#xff0c;以满足多样化的应用需求。 支持打开MP4文件格式的软…

119. 再谈接口幂等性

文章目录 0. 前言1. insert前先select2. 加悲观锁3. 加乐观锁5. 加唯一索引【配合 &#xff08;1. insert前先select &#xff09;最常用 】6. 建防重表6. 根据状态机7. 加分布式锁8. 获取token 0. 前言 在 93. 通用防重幂等设计 一文中&#xff0c;已经介绍过幂等的使用。该文…

【一看就懂】UART、IIC、SPI、CAN四种通讯协议对比介绍

UART、IIC、SPI、CAN四种通信协议对比 通信方式传输线通讯方式标准传输速度使用场景UARTTX(发送数据线)、RX(接收数据线)串行、异步、全双工115.2 kbit/s(常用)计算机和外部设备通信&#xff08;打印机&#xff09;IICSCL(时钟线)、SDA(数据线)串行、同步、半双工100 kbit/s(标…

Instagram新号操作攻略:快速起号防封号

对于企业和个人而言&#xff0c;运营好INS可以吸引流量、增加曝光、提升品牌知名度。然而很多人初次接触INS甚至在起号阶段就失败了&#xff01;今天就教给大家一个可以快速起号的方法&#xff0c;而且不怕被封号&#xff01; Instagram快速起号的方法 1️⃣ 新号刚注册完 注册…

一种由RSOA和PIC集成的宽可调激光器

----翻译自Nouman Zia, Samu-Pekka Ojanen, Jukka Viheriala, Eero Koivusalo, Joonas Hilska, Heidi Tuorila, and Mircea Guina在optics letter上发的文章vol.48, Issue 5, pp. 1319-1322(2023) 摘要&#xff1a;通过光子集成方式实现的2-3μm波长的可调激光器&#xff0c;在…

Adobe Acrobat Pro DC 2022一款高效强大的PDF阅读编辑专业软件(240506)

01 软件介绍 Adobe Acrobat Pro DC 2022&#xff0c;作为一款专业的PDF处理工具&#xff0c;它集成了强大的制作功能&#xff0c;能够与Adobe Photoshop的高级图像编辑能力无缝衔接&#xff0c;进而将各类纸质文档高效转换成可编辑的电子格式&#xff0c;以便于文件的传输和签…

进行服务器托管要考虑哪些因素?

随着互联网网络科技的快速发展&#xff0c;服务器已经成为企业开展业务中必不可少的一款设备&#xff0c;对于服务器一些企业选择了自行购买服务器&#xff0c;再托管到IDC服务器的机房当中&#xff0c;那么企业进行服务器托管时都会受到哪些因素的影响&#xff1f; 在如今的互…

跨越语言界限,多语言盲盒小程序带你领略全球风情

在全球化的今天&#xff0c;我们生活在一个多元文化的世界中&#xff0c;不同的语言、风俗、习惯共同构成了这个五彩斑斓的地球村。为了让每个人都能轻松体验到世界各地的独特风情&#xff0c;一款创新的多语言盲盒小程序应运而生&#xff0c;它跨越了语言的界限&#xff0c;让…

老阳分享:跨境选品师普通人做能否借此赚钱?

在跨境电商日益繁荣的今天&#xff0c;选品师这一职业逐渐进入大众视野。老阳&#xff0c;作为业内知名的跨境选品师&#xff0c;经常分享他的选品经验和心得。那么&#xff0c;对于普通人来说&#xff0c;成为跨境选品师是否真的能赚钱呢? 首先&#xff0c;我们需要明确什么是…

Nacos支持的配置格式及其在微服务架构中的应用

今天&#xff0c;我想和大家探讨一下Nacos这一重要的微服务组件&#xff0c;特别是它所支持的配置格式以及这些格式在微服务架构中的应用。 一、Nacos简介 Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它提供了服务发现、配置管理…

mySQL (基础面试)实物四属性 ACID属性,以及开启事务

mySQL具备四个基本属性 原子性atomicity 事务是一个完整的操作&#xff0c;事务的各个步骤是不可分的&#xff08;原子的&#xff09;&#xff0c;要么执行要么不执行 一致性consistency 当事务完成时&#xff0c;数据处于一致状态 隔离性isolation 并发事物之间彼此隔离…

基于springboot+vue+Mysql的租房网站

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

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

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

2024最新行业领域名词解释大全

2024最新行业领域名词解释大全 &#x1f680; 大家好&#xff01;我是你们的老朋友猫头虎&#x1f42f;。今天要为大家带来2024年最新的行业领域名词解释大全&#xff01;在这个信息爆炸的时代&#xff0c;准确了解不同领域的行业动态、工作机会和职业前景至关重要。下面我会分…

阿里巴巴中国站关键字搜索API返回值全攻略:精准定位所需商品

当使用阿里巴巴中国站的关键字搜索API时&#xff0c;理解其返回值的结构和内容对于精准定位所需商品至关重要。以下是一份全面的攻略&#xff0c;帮助你更好地利用这个API&#xff1a; 在商品列表中&#xff0c;每个商品对象都包含丰富的信息&#xff0c;以帮助你精准定位所需商…

伙伴匹配(后端)-- 前后端日期格式化

后端时间格式化 后端时间格式化 在expireTime属性加上一个格式化注解&#xff0c;并给定格式 前端过期时间格式化 下载一个moment格式化工具&#xff08;我安装失败了日期格式化也成功了&#xff09; npm install moment这一页和添加队伍新增这一行&#xff08;还要导入mom…

如何实现自定义度量指标和Actuator端点?

本文我们将介绍Spring Boot中一个非常有特色的主题&#xff0c;这个主题就是系统监控。系统监控是Spring Boot中引入的一项全新功能&#xff0c;对于管理应用程序运行时状态非常有用。Spring Boot Actuator组件是承载系统监控功能的组件&#xff0c;通过一系列HTTP端点提供系统…

网络错误码大全

网络错误码是指在网络通信过程中出现的各种错误代码。以下是一些常见的网络错误码&#xff1a; 400 Bad Request - 请求无效401 Unauthorized - 请求未经授权403 Forbidden - 禁止访问404 Not Found - 页面未找到500 Internal Server Error - 服务器内部错误502 Bad Gateway -…

Python数据爬取超简单入门

## 什么是网络爬虫&#xff1f; 网络爬虫是一种自动浏览器程序&#xff0c;能够自动地从互联网获取数据。爬虫的主要任务是访问网页&#xff0c;分析网页内容&#xff0c;然后提取所需的信息。爬虫广泛应用于数据收集、数据分析、网页内容监控等领域。 ## 爬虫的基本步骤 1.…