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");
            else
                System.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无法转换为int
		case 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.mfbz.cn/a/601884.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

.NET邮箱API发送邮件的步骤?怎么配置API?

.NET邮箱API发送邮件需要注意哪些&#xff1f;如何使用API发信&#xff1f; 在.NET环境中&#xff0c;使用邮箱API发送邮件是一个常见的需求。无论是企业级的邮件通知&#xff0c;还是个人项目中的邮件验证&#xff0c;都少不了.NET邮箱API的帮助。下面&#xff0c;AokSend将详…

我的创作纪念日(365天)

时间如白驹过隙&#xff0c;转眼间&#xff0c;我已经在技术写作这条路上走过了365个日夜。回望2023年5月9日&#xff0c;我敲下了第1篇技术博客的标题——《什么是代理IP&#xff1f;代理IP有什么用途》。那一天&#xff0c;平凡而又不平凡&#xff0c;因为我决定将自己的知识…

政安晨【零基础玩转各类开源AI项目】:基于Ubuntu系统本地部署使用GPT-SoVITS进行语音克隆与TTS语音生成

目录 介绍 什么是TTS 安装Miniconda 框架功能 测试通过的环境 开始 1. 安装好miniconda 2. 进入下载的GPT-SoVITS目录 3. 创建虚拟环境并执行脚本 4. 执行过程中可能会出错 5. 下载预训练模型 6. 训练过程中可能会报错 7. 使用过程中可能出错 8.以下是使用全过程…

信息安全管理体系介绍(含全套体系文档)

信息安全管理体系英文全称Information Security Management System&#xff0c;简称为ISMS&#xff0c;是1998年左右从英国发展起来的信息安全领域中的一个全新概念&#xff0c;是管理体系&#xff08;Management System&#xff0c;MS&#xff09;思想和方法在信息安全领域的应…

Flask-大体了解介绍

初识Flask Flask是使用 Python编写的Web微框架。Web框架可以让我们不用关心底层的请求响应处理&#xff0c;更方便高效地编写Web程序。 Flask主要有两个依赖&#xff0c;一个是WSGI&#xff08;Web Server Gateway Interface&#xff0c;Web服务器网关接口&#xff09;工具集…

探索大语言模型在信息提取中的应用与前景

随着人工智能技术的快速发展&#xff0c;大语言模型&#xff08;LLMs&#xff09;在自然语言处理&#xff08;NLP&#xff09;领域取得了显著的进展。特别是在信息提取&#xff08;IE&#xff09;任务中&#xff0c;LLMs展现出了前所未有的潜力和优势。信息提取是从非结构化文本…

ChatGPT-Next-Web漏洞利用分析(CVE-2023-49785)

1. 漏洞介绍 ​ 日常网上冲浪&#xff0c;突然粗看以为是有关Chat-GPT的CVE披露出来了&#xff0c;但是仔细一看原来是ChatGPT-Next-Web的漏洞。漏洞描述大致如下&#xff1a;&#xff08;如果有自己搭建了还没更新的速速修复升级防止被人利用&#xff0c;2.11.3已经出来了&am…

解决ModuleNotFoundError: No module named ‘skfuzzy‘,这个库全名可不叫skfuzzy哦,否则直接报错!!

ModuleNotFoundError: No module named skfuzzy 在这里插入图片描述在这里插入图片描述如何解决 ModuleNotFoundError: No module named skfuzzy 的问题&#xff1f;skfuzzy 模块介绍什么是模糊C均值聚类&#xff1f;skfuzzy 的应用如何使用 skfuzzy 进行模糊聚类 结论 如何解决…

数据结构-线性表-应用题-2.2-14

1&#xff09;算法基本设计思想&#xff1a; 2&#xff09;c语言描述&#xff1a; #define INT_MAX 0X7FFFFFFF int abs_(int a) {//绝对值if(a<0) return -a;else return a; } bool min(int a,int b,int c){if(a<b&&a<c) return true;else return false; } …

JAVA随记——集合篇

注意&#xff1a;作者之前的Java基础没有打牢&#xff0c;有一些知识点没有记住&#xff0c;所以在学习中出现了许多零散的问题。现在特地写一篇笔记总结一下&#xff0c;所以有些知识点不是很齐全。 集合中各类名词的关系 Collection集合为单列集合。 集合存储数据类型的特点…

案例导入说明.md

案例导入说明 为了演示多级缓存&#xff0c;我们先导入一个商品管理的案例&#xff0c;其中包含商品的CRUD功能。我们将来会给查询商品添加多级缓存。 1.安装MySQL 后期做数据同步需要用到 MySQL 的主从功能&#xff0c;所以需要大家在虚拟机中&#xff0c;利用 Docker 来运行一…

即将开幕,邀您共赴创新之旅“2024上海国际消费者科技及创新展览会”

备受期待的2024上海国际消费者科技及创新展览会&#xff08;以下简称“CTIS”&#xff09;即将于6月13日至15日亮相上海新国际博览中心N1-N3馆。 2024上海国际消费者科技及创新展览会总面积达40,000平方米&#xff0c;涵盖600余家展商&#xff0c;预计吸引40,000多位观众莅临现…

js原生写一个小小轮播案例

先上示例&#xff1a; 附上代码 html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content…

陪诊系统|陪诊小程序成品|陪诊系统功能

随着人们对健康的日益关注以及医疗技术的不断进步&#xff0c;陪诊小程序应运而生&#xff0c;通过提供陪同就医、医疗服务和健康管理等功能为患者和家庭成员提供了更多的便利和选择。本文将分析陪诊小程序的关键功能&#xff0c;以便更好地理解其在医疗领域的作用。 在陪诊小程…

SpringBoot过滤器简单构建详细教程以及与拦截器区别解释

作用范围&#xff1a;过滤器基于Servlet规范&#xff0c;作用于更广泛的层面&#xff0c;不仅限于Spring MVC&#xff0c;它可以拦截进入Web应用的所有请求&#xff0c;包括静态资源请求。过滤器可以对请求和响应的内容进行预处理和后处理。实现方式&#xff1a;过滤器需要实现…

iPhone 数据恢复软件 – 恢复丢失的 iPhone 数据

恢复丢失的 iPhone 数据&#xff0c;奇客数据恢复iPhone版。如今的 iPhone 用户在他们的设备上存储了大量数据&#xff0c;从照片和与亲人的文本对话到商业和医疗信息。其中一些是保密的&#xff1b;其中大部分内容都是非常个人化的&#xff1b;而且大多数一旦丢失就无法替代。…

4G水电燃气表定时拍照云端识别抄表仪器

通信方式&#xff1a;4G全网通 通信频段&#xff1a;B1/B3/B5/B8/B34/B38/B39/B40/B41 传输速率&#xff1a;最大10Mbps(DL)/最大5Mbps(UL) 传输功率&#xff1a;≤23dBm2dB 图片尺寸&#xff1a;640*480 JPG 图片大小&#xff1a;10~20K 光源条件&#xff1a;自带补光&a…

很好的Baidu Comate,使我的编码效率飞起!

文章目录 背景及简单介绍Baidu Comate安装功能演示总结 &#x1f381;写在前面&#xff1a; 观众老爷们好呀&#xff0c;这里是前端小刘不怕牛牛频道&#xff0c;今天牛牛在论坛发现了一款便捷实用的智能编程助手&#xff0c;就是百度推出的Baidu Comate。下面是Baidu Comate评…

html--互动星空

<!doctype html> <html> <head> <meta charset"utf-8"> <title>互动星空</title><style> html,body {margin:0;overflow:hidden;width:100%;height:100%;cursor:none;background:black;background:linear-gradient(to bot…

CSS-背景属性

目录 背景属性 background-color (背景颜色 ) background-image (背景图片 ) background-repeat (背景图平铺方式 ) no-repeat 不平铺 repeat-x 水平方向平铺 repeat-y 垂直方向平铺 repeat 平铺 background-position (背景图位置) background-size (背景缩…
最新文章