2024年C C++最新逻辑控制(结合核心技术卷1)_java核心技术卷中的代码风格,并发知识体系大全

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

在这里插入图片描述

注意: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;
        }
    }
}

🚩注意:

🌓1,无论default的位置在哪里,只要没有匹配到任何一个case,就会直接走default。

🌓2,每一个case语句以及default语句后面的break语句都不能省略,不然就会穿透执行,除非是在特定的情况下,不然break都不能掉。

🌓3,switch结构里面的关键字只有case,break,continue是用在循环里面的,这里是分支结构,不要混淆。

🌓4,switch括号里面的数据的类型只能是byte, short, int, char,String, enum类型,然后case后面的常量与switch匹配就行。(注意不能是long,因为整形都会往int转,但是long转int会有精度损失)。

🌓5,case后面的常量值不能够重复,每一个case就代表一种不同的情况。

🌓6,switch的括号里面可以放表达式,但是不能像if语句一样,可以放一些较为复杂的表达式。

🌓7,switch语句可以嵌套,但是不好看。


🌈四,循环

三大循环: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");
        }
    }
}

不出意外的,这段代码死循环了,也就是我说的将浮点数作为循环变量。因为0.1在存储的时候,小数部分是无法用二进制准确表示的,所以我们每次加的都是一个近似值,那么这里可能刚好加了之后可能刚好跳过了10,所以循环就一直进行了下去。


🌟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的扩展用法:

在Java中,是没有goto语句的,但是因为设计者认为goto语句思想还是没有问题的在某些特定的条件下,确实可以起到很好的跳出循环的效果,所以在Java里面就发明了**带标签的break语句,作用是可以达到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("已跳出循环!");
    }
}

程序运行截图:

在这里插入图片描述

可以看到,到我们利用标签后,可以指定跳出到哪里。如果这里只是用break,不用标签的话,那么break就只会跳出里层的for循环,外面的while还是一个死循环,用了标签之后,当i== 3,就可以直接跳出到while循环的外部。


🌟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语句的作用是结束本轮循环而开始下一次的循环,如上题,当i == 2,所以就会直接跳过后面的语句,也就是i++不会执行了,导致i一直等于2,所以陷入了死循环。当然如果你这里用for循环就不会这样了,因为i++的执行顺序在前面,continue影响不到

🚩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);//读入一个字符串,遇到空格停止
    }
}

🚩这里就是要注意你的输入与你接收的方法要对应,另外就是当你用了nextLine()来接收一行的时候,要注意它前面有不有用输入的方法,因为你的换行会被当成一行读入到nextLine()里面,这里就类似于C语言里面吃掉缓冲区里面的回车是一个道理。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

()里面,这里就类似于C语言里面吃掉缓冲区里面的回车是一个道理。**

[外链图片转存中…(img-SIeomNC6-1715566897765)]
[外链图片转存中…(img-5qZA3UAb-1715566897765)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值