0
点赞
收藏
分享

微信扫一扫

逻辑控制(结合核心技术卷1)

三维控件研究 2022-04-25 阅读 72
java

在这里插入图片描述

逻辑控制


🌈一,块作用域

首先在深入学习控制结构之前,需要先了解块(block)的概念。

块:即复合语句,是指由一对大括号括起来的若干条简单的 Java 语句。块确定了变量的作用域。一个块可以嵌套在另一个块中。

public class TestDemo220425 {
    public static void main(String[] args) {
        int n = 10;
        {
            int k = 20;
            int n = 20;
        }
    }
}

🌈二,顺序结构

顺序结构比较简单,按照代码书写的顺序一行一行执行。

图示:

在这里插入图片描述


🌈三,分支结构

图示:

在这里插入图片描述

注意:if /else if 之间是一个并列的关系,不像是if else是一个非此即彼的关系,这种叫做多分支的结构。


🚩有关分支结构的几个注意点:

🌓1,if括号里面的表达式只能是布尔表达式,没有什么非0为真,0表示假。

🌓2,Java里面的代码风格我们推荐行尾风格。

🌓3,悬空else问题,也就是说if/else语句最好一定要把括号加上,这样代码可读性更好,如果不加,当有多个if/else语句时,else一定是与最近的else进行匹配

public class TeseDemo220424 {
    public static void main(String[] args) {
        int x = 10;
        int y = 10;
        if (x == 10)
            if (y == 10)
                System.out.println("aaa");
        else //这个else其实匹配的是if(y == 10)
            System.out.println("bbb");

    }
}

4,switch语句的问题


🌟重点,switch语句

public class TeseDemo220424 {
    public static void main(String[] args) {
        int a = 3;
        switch(a){
            default:
                System.out.println("输入错误!");
                break;
            case 1:
                System.out.println(1);
                break;
            case 2:
                System.out.println(2);
                break;
        }
    }
}

🚩注意:


🌈四,循环

三大循环:while循环,for循环,do while循环(循环具体的基本定义就不做介绍了,这里只是点一些要注意的点)

🌟4.1,易错点

🌓1,循环的几个部分,循环变量的定义,条件判断,循环体,循环变量的迭代。一定要注意循环变量的迭代,如果说一个循环变量没有迭代直至向着跳出循环的方向进行的话,那么就可能造成死循环了。

🌓2,不要在循环内部对循环变量做手脚,即使你需要使用你的循环变量,用一个临时的变量来接收它的值,然后再去使用。

🌓3,轻易不要将浮点数作为循环变量。

public class TestDemo220425 {
    public static void main(String[] args) {
        for(double x = 0;x != 10;x += 0.1){
            System.out.println("haha");
        }
    }
}

🌟4.1,break语句

public class TeseDemo220424 {
    public static void main(String[] args) {
        int i = 1;
        while(i <= 10){
            if(i == 2){
                break;
            }
            System.out.println("hehe");
            i++;
        }
    }
}

程序运行截图:

在这里插入图片描述

break语句的作用是跳出它所在的循环,比如上面当i == 2的时候,就会跳出while循环,所以只会输出一个hehe。

🚩break的扩展用法:

示例:

public class TestDemo220425 {
    public static void main(String[] args) {
        label1:
        while(true){
            for(int i = 0;i < 10;i++){
                if(i == 3){
                    break label1;
                }
                System.out.println(i);
            }
        }
        System.out.println("已跳出循环!");
    }
}

程序运行截图:

在这里插入图片描述


🌟4.2,continue语句

public class TeseDemo220424 {
    public static void main(String[] args) {
        int i = 1;
        while(i <= 10){
            if(i == 2){
                continue;
            }
            System.out.println("hehe");
            i++;
        }
    }
}

程序运行截图:

在这里插入图片描述

🚩continue扩展用法:

同样的,在continue里面,也是可以使用标签的,可以指定跳到与标签匹配的循环的首部。

示例:

public class TestDemo220425 {
    public static void main(String[] args) {
        label1:
        for(int i = 0;i < 10;i++){
            if(i == 3){
                continue label1;
            }
            System.out.println(i);
        }
}

程序运行截图:

在这里插入图片描述


🌈五,输入输出

🌟5.1,输出到控制台

在这里插入图片描述


在这里插入图片描述

🌟5.2,从键盘输入

public class TeseDemo220424 {
    public static void main(String[] args) {
        Scanner myscanner = new Scanner(System.in);

        System.out.println("请输入年龄");
        int num = myscanner.nextInt();
        System.out.println(num);

        System.out.println("请输入名字");
        String str = myscanner.nextLine();//读入一行
        System.out.println(str);

        System.out.println("请输入专业");
        String str1 = myscanner.next();
        System.out.println(str1);//读入一个字符串,遇到空格停止
    }
}

程序运行截图:

在这里插入图片描述

扩展,在用键盘进行输入的时候,我们是能够看到我们自己的输入的,但是在某些情况下,比如输入密码,我们一般是不想让人看到的,所以这里可以运用到Console类。(这里只做简要介绍)

Console类:访问与当前Java虚拟机关联的基于字符的控制台设备(如果有的话)的方法,也即使从控制台接收输入的方法。

使用示例:

import java.io.Console;
public class TestDemo220425 {
    public static void main(String[] args) {
        Console cons = System.console();
        String username = cons.readLine("User name: ");
        char[] passwd = cons.readPassword("Password:");
    }
}

在IDEA下的运行截图:

在这里插入图片描述

❌???怎么直接报空指针异常了,寻思着这里也没用到指针吧,感到十分的不解…🤔🤔

在这里插入图片描述

可以看到在控制台下运行正常,并且我们输入的密码是看不到的(这里真的输入了的哦,只是看不到,中国人不骗中国人的!😊)


🌟5.3,循环输入

public class TeseDemo220424 {
    public static void main(String[] args) {
        Scanner myscanner1 = new Scanner(System.in);
        while(myscanner1.hasNextInt()){
            int age = myscanner1.nextInt();
        }
    }
}

程序运行截图:

在这里插入图片描述

循环输入的时候可以ctrl + D 进行正常退出


🌈六,猜数字游戏

这里主要是介绍Java里面的生成随机数的方法

所在包:Java.util.random

import java.util.Random;
public class TeseDemo220424 {
    public static void main(String[] args) {
//        生成随机数
        Random random = new Random();
        int rannum = random.nextInt(100);//生成[0,100) 的随机数 其他范围可以通过在后面加上数来进行范围改变,默认左边都是从0开始
        
    }
}

对于int rannum = random.nextInt();如果你后面nextInt()中不给值,那么它产生的就是所有有效的整数,包括正数,负数,0

其他方法:
在这里插入图片描述

其他方法主要就是Math.random(),这个产生的是0~1之间的小数,左闭右开。当然这个是没有上面那种产生同一个随机数的用法的。


最后的最后,感谢大家的阅读,如果觉得不错的话,还请帮忙点点赞咯,十分感谢呢!🥰🥰🥰

在这里插入图片描述

举报

相关推荐

0 条评论