07逻辑运算符与细节问题

发布时间 2023-04-08 23:13:30作者: tin88eaby

细节

%:有符号问题,结果用永远与被除数一致

System.out.println(10%3);//1
        System.out.println(-10%3);//-1
        System.out.println(10%-3);//1
        System.out.println(-10%-3);//-1

逻辑运算符

!不等于
两个符号怕【根据真值表判断(短路特性;前面表达式是假的后面表达式就不看了)】 &&且 ||或
一个符号【一切都会判断】 &且 |或
问题:真或假->结果是真还是假

System.out.println("------");
        System.out.println(2<1 && 1/0==0);//假 且。。。->假
        System.out.println(2>1 || 1/0==0);//真 或。。。->真

        System.out.println(2<1 & 1/0==0);//报错,原因为0不能为除数
        System.out.println(2>1 | 1/0==0);//报错,原因为0不能为除数

细节

a = a +2; 与 a += 2; 一样的
例子

        int myNum = 2 ;
//        myNum = myNum + 10 ;
        myNum += 10 ;
        System.out.println(myNum);

        int sum =100;
//        sum = sum + myNum ;
        sum += myNum ;
        System.out.println(sum);

i++ 先用后加
++i 先加后用

例子

 System.out.println("------");
        int i = 10 ;
//        i = i + 1;
//        i += 1;
//        i++;
//        ++i;
//        i++ 先用后加

        System.out.println(i++);
        System.out.println(i++);
        System.out.println(i++);
        System.out.println(i);

        int j = 10 ;
//        ++i 先加后用
        System.out.println(--j);
        System.out.println(--j);
        System.out.println(--j);
        System.out.println(j);

byte,short特殊情况
byte=byte + byte; 错
byte +=byte;对
示例:

        byte b1 = 10 ;//int
        float f = 123.4f ;//double需要强转
        // 整数= += 内置转换器

        byte b1 = 100 ;
        byte b2 = 100 ;
        //b2 = b1 +b2;//报错,认为左边byte,右边int
        //特例 byte,int的整数情况,byte+byte和short+short都是int,需要强转
        /*解释 byte = byte +byte;
        -128--127 = -128--127 + -128--127
        -128--127 = -256--254
         */

        b2 +=b1;//正常运行 整数= += 内置转换器

字符串 比较用 equals() !equals()
示例

        String str1 = "abc" ;
        String str2 = "abc" ;
        System.out.println(str1.equals(str2));
        System.out.println(str1 == (str2));//可以运行,且为ture,但不要用这种。这是类和对象,引用问题
        System.out.println(!(str1.equals(str2)));

三目运算符
x = 布尔判断 ?为真时返回 :为假时返回;
示例

        String result1 = 10>2 ? "hello":"world";//为true,显示hello
        System.out.println(result1);
        String result2 = 10<2 ? "hello":"world";//false,显示world
        System.out.println(result2);