1. 每日一考

1.1 “&”和“&&”的异同?

“&”称作逻辑与或者单与,“&&”称作短路与或者双与。
“&”和“&&”都表示与,下列两种语句产生的结果是相同的,即只有A和B都是true的时候,结果才是true,否则结果为false。另外,当A为true时,两种语句A和B都会被执行。不同的是,当A为false时,第一种语句会将A、B都执行,第二种情况会跳过B的执行(短路效果)。

if(A&B){}
if(A&&B){}

1.2 程序输出

class OperatorTest{
  public static void main(String[] main){
    boolean x = true;
    boolean y = false;
    short z = 40;
    if((z++ == 40) && (y = true)){    //先将true赋给y,所以y是true,所以y=true是true
      z++;
    }
    if((x == false) || (++z == 43)){
      z++;
    }
    System.out.println("z= " + z);
  }
}

结果为:44。

1.3 定义3个int型变量并赋值,使用三元运算符或者if-else获取这三个数中的较大的数的实现。

int num1 = 10;
int num2 = 21;
int num3 = -21;

int max;
if(num1 >= num2 && num1 >= num3){
  max = num1;
}
else if(num2 >= num1 && num2 >= num3){
  max = num2;
}
else{
  max = num3;
}

System.out.println("max number is " + max);

1.4 编写程序,声明两个double型变量并赋值。判断第一个数大于10.0,且第2个数小于20.0,打印两数之和。否则,打印两数之差

double d1 = 12.3;
double d2 = 32.1;

if(d1 > 10 && d2 < 20){
  ...
}
else{
  ...
}

1.5 交换2个变量值的代码实现

String s1 = "北京";
String s2 = "南京";

String temp = s1;
s1 = s2;
s2 = temp;

2. 运算符

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 三元运算符

2.1 算术运算符

运算符 运算
+ 正号
- 负号
+
-
*
/
% 取余
++ 自增(前)
++ 自增(后)
-- 自减(前)
-- 自减(后)
+ 字符串连接
class AriTest{
    public static void main(String[] args){
        
        // 除号 /
        int num1 = 12;
        int num2 = 5;
        int result = num1/num2;
        System.out.println(result);							// 2
        
        int result2 = num1/num2*num2;
        System.out.println(result2);						// 10
        
        double result3 = num1/num2;
        System.out.println(result3);						// 2.0
        
        double result4 = num1/num2 + 0.0;					// 2.0
        double result5 = num1/(num2+0.0);					// 2.4
        double result6 = (double)num1/num2;					// 2.4
        double result6 = (double)(num1/num2);				// 2.0
        
        // 取余运算 %
        int m1 = 12;
        int n1 = 5;
        System.out.println("m1 % n1 = " + m1 % n1);			//2
        
        int m2 = -12;
        int n2 = 5;
        System.out.println("m2 % n2 = " + m2 % n2);			//-2
        
        int m3 = 12;
        int n3 = -5;
        System.out.println("m3 % n3 = " + m3 % n3); 		//2
        
        int m4 = -12;
        int n4 = -5;
        System.out.println("m4 % n4 = " + m4 % n4);			// -2
        
        // 结论:结果和被模数的符号相同
        
        
        //前++ : 先自增1,后++
        //后++ : 先运算,后自增1
        int a1 = 10;
        int b1 = ++a1;										// b1 = 11
        
        int a2 = 10;
        int b2 = a2++;										// b2 = 10
        
        //注意点:
        short s1 = 10;
        s1 = s1 + 1;										// 编译失败
        s1 = (short)(s1 + 1);								// 编译正确
        s1++;								// 编译正确,自增不会改变变量本身的数据类型
        
        //问题
        byte bt1 = 127;
        bt1++;												// bt1 = -128
     
        //前-- : 先减1,后运算
        //后-- : 先运算,后减1
        
    }
}

2.2 赋值运算符

posted on 2021-10-10 01:20  滔特特  阅读(52)  评论(0编辑  收藏  举报