JAVA 变量和类型 条件和循环---2

这篇博客介绍了Java编程中的基本逻辑控制结构,包括条件运算符、循环结构(while、for)以及switch语句的使用。还讲解了算术运算如取余(%)、自增运算符(前置++和后置++)的差异,并探讨了逻辑运算符(&&、||、!)以及它们的短路求值特性。此外,文章通过实例展示了如何利用位运算进行数值操作,如按位异或(^)进行无额外变量的数值交换。最后,提到了断点调试和重命名功能在代码调试中的作用。
摘要由CSDN通过智能技术生成

求余   %   

        double num = 5.0;
        double num2 =1.5;
        System.out.println(num%num2);

0.5

Process finished with exit code 0

前置++和后置++的区别主要在于取表达式的返回值

如果不取返回值,那么两者一样,效果等价

        int a = 10;
        int ret = ++a;
        System.out.println("a:"+a);
        System.out.println("ret:"+ret);

a:11
ret:11
        int a = 10;
        int ret = a++;
        System.out.println("a:"+a);
        System.out.println("ret:"+ret);

a:11
ret:10

++a 表达式返回的是自增之后的结果

a++表达式返回的是自增之前的结果

逻辑运算

&& 并且     || 或者 or        !逻辑取反

&&一假则假     || 一真则真

注意事项:短路求值

1.对于逻辑与运算来说,如果左侧表达式为flase。右侧表达式不再求值

2.对于逻辑或运算来说,如果左侧表达式为ture。右侧表达式不再求值

对于大部分编程语言都支持短路求值

 如果操作数是布尔类型 &表示与 | 表示或 但不支持短路求值

  如果操作数是整数   &表示按位与  |表示按位或     

先把数据理解成二进制,然后再针对对应的bit位进行运算

        int a= 10;
        int b= 20;
        System.out.println(a|b);

30

不是相加 换算成二进制之后得到的结果

^  --------按位异或  如果两个对应的bit位,相同结果就是0 相异结果是1

a=10 b=20

a^0 = a        01010    00000

a^b^b = a   01010   10100--------11110 10100----01010

不使用临时变量 交换 a b 的值       (使用异或)

        int a =10;
        int b =20;
        a=a^b;
        b=a^b;
        a=a^b;
        System.out.println(a);
        System.out.println(b);

20
10

移位运算

<< 最左侧的位就不要了,最右侧补0 左移一位相当于*2

>>算术右移,最右侧的位就不要了,最左侧补符号位 右移1位相当于/2

>>> 逻辑右移 最右侧的位不要了 最左侧补0

条件运算符

? : 

       int max=a>b?a:b;
        System.out.println(max);

20

相当于 if else 语句

       int num = 10;
        if(num>20){
            System.out.println("hello");
        }else{
            System.out.println("world");


world

多分支

        int score = 90;
        if (score>=90) {
            System.out.println("优秀");
        }else if(score>=80) {
            System.out.println("良好");
        }else if (score>=60) {
            System.out.println("及格");
        }else {
            System.out.println("不及格");
        }
    }

优秀

判断一个数的奇偶性 代码如下👇

        int num = 10;
        if(num%2==0) {
            System.out.println("偶数");
        }else{
            System.out.println("奇数");
        }
    }


偶数

判断正负数

       int num = -1;
        if (num>0) {
            System.out.println("正数");
        }else if (num<0) {
            System.out.println("负数");
        }else{
            System.out.println("0");
        }
    }

switch 语句

        int day = 8;
        switch(day){
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期天");
                break;
            default:
                System.out.println("输入有误");
        }
    }

switch 语句中的一些局限性

1.switch的()中只能放有限的几种类型

2.break语句一旦遗漏了,程序的执行效果可能会出错

3.switch 很难表达一些复杂的逻辑

4.switch 虽然支持嵌套 但是非常丑

循环结构

while循环 

计算1加到100

        int result = 0;
        int num = 1;
        while(num<=100) {
            result += num;
            num++;
        }
            System.out.println(result);
        }
    }


5050

计算5的阶乘

        int result = 1;
        int num = 1;
        while(num<=5){
            result*=num;
            num++;
        }
        System.out.println(result);
        }
    }

120

shift +f6 触发rename功能

调试   断点 

break表示结束整个循环  continue 表示跳过这次循环

用for 循环打印1--10

           //打印1--10
        for(int num=1; num<=10;num++){
            System.out.println(num);
        }
        }
    }

1
2
3
4
5
6
7
8
9
10

for 最大的好处在于把循环语句的三个要素放在一起集中表示

计算1加到100

        int result=0;
        for(int num =1;num<=100;num++){
            result+=num;
        }
        System.out.println(result);
        }
    }

5050

计算5的阶乘

        int result = 1;
        for(int num = 1;num<=5;num++){
            result*=num;
        }
        System.out.println(result);
        }
    }

120

计算1-5的阶乘求和  双重循环

        int result = 0;
       // 第一层循环用来控制求和
       for(int num =1;num<=5;num++){
       //  第二层循环用来控制求num
           int factorResult =1;
           for(int i = 1;i<=5;i++){
               factorResult*=i;
           }
           result+=factorResult;
       }
        System.out.println(result);
        }
    }

600

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值