day03 六种运算符 if-else结构

目录

 

1 运算符之一:算数运算符

运算符之二:赋值运算符

3.运算符之三,比较运算符

4.逻辑运算符

5.运算符之五(了解)

6.运算符之六:三元运算符

7.分支结构中的if-else(条件判断结构)与三元运算符

8、算法练习,任意一个数值转成16进制

 


1 运算符之一:算数运算符

/*
运算符之一:算数运算符
+  -  *  和/  %     前++ -- 后++ --
*/
class AriTest {
    
         public static void main(String[] args){
             int num1 = 12;
            int num2 = 5 ;
            double result1 = num1 / num2 ;  //2.0   
            double result2 = (num1+0.0) /num2 ;  //2.4    (num1+0.0)转成double
            double result3 = num1 / (num2+0.0);  //2.4    (num2+0.0)转成double
            double result4 = (double) num1/num2; //2.4   把num1转成double
            double result5=  (double) (num1/num2);// 2.0   已经算完num1/num2已经是2了,所以double还是2
             
        System.out.println(result1);
        
        /*
        取余运算:
         结果的符号与被模数/被除数符号相同
         经常使用%来判断能否被除尽的情况
        
        */
            int  n1=12;
            int  m1=5;
            System.out.println(n1%m1);  //2
            int  n2= -12;
            int m2= 5;
            System.out.println(n2%m2);  //-2
            
        }
}
            /*
            前++   : 先自增1,再运算
            后++:  先运算,再自增1

            */
            int a1= 10; 
            int b1=++a1;   //a1 =11  b1=11
            int a2 = 10;
            int b2 ==a2++; //a2=11  b2=10 
            
            int a3=10;
            ++a3;
            int b3 = a3;    // a3= 11 b3=11
            
            int a4=10;
            ++a4;
            int b4 =++a4;   //a4=12 //b4=12
            
            //注意点:
            short s1=10;
            s1++;   //自增1不会改变本身变量的数据类型
            byte bb1=127;
            bb1++;   // bb1=-128 
            
            //前--:先自减1,后运算;
            //后--,先运算赋值,再自减1;
            //与前++ 后++一致
            
            int a4=10;
            int b4 =--a4;   //  a4=9 b4=9
                      
            /*
            练习:
            随意3位数,给出百位数,十位数,个位数;
            */          
            
            int num=187;
            int bai num=num/100;
            int shi =num%100/10;
            int ge =num%10;

运算符之二:赋值运算符

/*
运算符之二:赋值运算符
=    +=  -=  *=  /=  %=


*/

            int i1=10;
            int j1=10;
            int i2,j2;
            //连续赋值
            i2=j2=10;
            int i3=10,j3=20;
            
            int  num1=10;
            num1 +=2;   //num1=num1+2;
            int num2 =12;
            num2 %= 5  //num2 =num2 % 5;
            
            short s1= 10;
            //s1 =s1+2  //失败;
            short +=2 //不会改变变量的数据类型
            
            //开发中,如果希望变量实现+2的操作,有几种方法,前提 int num=10;
            //方式一:num=num+2;   
            //方式二: num += 2;(推荐)不会改变变量的数据类型
            
            //开发中,如果希望变量实现+2的操作,有几种方法
            //方式一:num=num+1
            //方式二: num += 1;
            //方式三:num++;(推荐)
            
            int i=1;
            i *= 0.1;   //输出为0
            
            
            int m = 2;
            int n = 3;
            n *= m++; 
            System.out.println("m=" + m);  // 3
            System.out.println("n=" + n);   //6

            int n = 10;
            n += (n++) + (++n);        // n++ 为10  之后 n =11  ++n =12
            System.out.println(n);
            
            int n = 10;
            n += (n++) ;    //  n=n+n++        10+10
            n+= (++n);      // n=n +   ++n     20+21
https://blog.csdn.net/weixin_44734925/article/details/88544710

 

3.运算符之三,比较运算符

/*
运算符之三,比较运算符
==  !=  > <   >=  <=   instance of
结论: 
1、比较运算符的结果是boolean类型
2、区分 == 和 =

3、  ==  != 不仅可以使用在数值类型数据之间,还可以使用在其他引用类型变量之间。(面向对象)


*/ 
            int i1 =10;
            int j1 =20;
            System.out.println(i1==ji); // false 
            System.out.println(i = j);   // 20   把j幅值给i
    
            boolean b1 =true;
            boolean b2 = false ;
            System.out.println(b2 ==b1);  //false
            System.out.println(b2 = b1 ); //把b1 幅值给 b2  ture

 

4.逻辑运算符

/*
运算符之四:逻辑运算符:
& &&  |  || !  ^
说明:
1、逻辑运算符操作的都是boolean的类型变量

*/
    // 区分 &和&&
    //相同点:&和&&运算结果相同;
    //不同点:当符号左边是false,&继续执行右边的运算,&&不再执行右边的运算
            boolean b1 =ture;
            int num1=10;
            if(b1 &(num1++ >0 )){        // ture & true 为ture
                System.out.println("我在北京");  
            }else {
                System.out.println("我在南京");  
                }
                System.out.println(num1);       // 11
                
                
            boolean b2=false;
            int num2 = 10;
            if(b2 && (num2++>0)){         //b2 && *** b2已经是false所以系统不识别num2++>0,
            //  如果b2为true,会执行后半段。
    
                System.out.println("我在北京"); 
            }else{
                System.out.println("我在南京"); 
            }
            System.out.println(num2); //10,不执行后半句话

         //区分: | 和 || 
         // 相同点:| 和 || 的运算结果相同;
         // 相同点2:当符号左边是false时,二者都会执行符号右边的运算
         //不同点:当符号左边是true时,|继续执行符号右边的运算,而|| 不再执行符号右边的运算
            boolean b3 = false;
            int num3 = 10;
            if(b3 |(num3++>0) {    //flase | ture  结果为ture
                System.out.println("我在北京"); 
            }else{
                System.out.println("我在南京"); 
            }
            System.out.println(num3);      //11
            
         boolean b3 = ture;
            int num3 = 10;
            if(b3 || (num3++>0) {    //ture || **  前面已经是true,所以不执行后半句话
                System.out.println("我在北京"); 
            }else{
                System.out.println("我在南京"); 
            }
            System.out.println(num3);      //10

5.运算符之五(了解)

/*
运算符之五(了解)

结论:
1、位运算符操作的都是整型的数据
2、<< : 在一定范围内,每向左移1位,相当于*2,向左移拿0补
    >> ; 在一定范围内,每向右移1位,相当于/2,向右移,正数用0补,负数用1补
    例如:2*8    →    2<<3   /  8<<1
*/            
            int i=20;
             i=i<<2 ;
             
            System.out.println(i);    //i=20*2^2; 
        
            int m= 12;
            int n=5;
            System.out.println(m&n);  //与
            System.out.println(m|n);   // 或
            System.out.println(m^n);  //异或
            
            //练习:交换两个变量的值!@!!@!@!@
            int num1=10;
            int num2 =20;
            //方式一 : 定义临时变量的方式
            int temp1;
            temp1 = num1;
            num1=num2;
            num2=temp1;     //顺时针 三角形赋值
            //方式二:
            
            //好处:不用定义临时变量,
            //坏处:相加操作可能超出存储范围,只能使用数值类型,因为有- 号
            num1 =num1+num2;
            num2= num1-num2;
            num1=num1-num2;  // 相加来回减
            //方式三:
            // a = b^(a^b) 
            
            int num1;
            int num2;
            num1 = num1 ^ num2;   
            num2 =num1 ^  num2;
            num1 = num1 ^ num2 ;   //同方式二思考模式。

 

 

6.运算符之六:三元运算符

/*
运算符之六:三元运算符
1、结构  (条件表达式)? 表达式1:表达式2 。
2、说明:
  1、条件表示要为boolean类型,
  2、根据表达式为true,执行表达式1,false执行表达式二;
  表达式1 和表达式二的要求是一致的
  三元运算符可以嵌套使用;
  
  3、凡是可以使用三元运算符的地方,都可以写成if-else 结构
    反之不成立

    
    4、如果程序既可以使用三元。又可以使用if-else,优先三元,因为整洁效率高
*/
            //获取两个整数的较大值;
             int m=15;
             int n=5;
             int max =(m>5)?m:n  ;
             System.out.println(max);  //输出15
             
             double num=(m>n)?2: 1.0;
             //  double num =(m>n)? 2:"n大" //编译错误;
            
            String maxStr =(m>n)? "m大" :((m=n)?"m=n": "n大");
            
            
            
            
            //获取三个数的最大值
            int n1=12;
            int n2=30;
            int n3=-43;
            
            int max1 = (n1>n2)? n1:n2;
            int max2 =(max1>n3)? max1:n3;
            System.out.println(max2); 
            
            //不推荐,可读性不强
            int max3 =  (((n1>n2)? n1:n2)>n3)?((n1>n2)? n1:n2):n3;
        
             //改写成if-else
            int max1 
             if (n1>n2){
                max1=n1;
             }else{
                 max1 = n2;    
             }if(max1>n3){
                 System.out.println(max1);
             }else{
                 System.out.println(n3);
             }
            
             if(n1>n2){
                 if(n1>n3){
                     System.out.println("最大值为"+n1);
                 }else{
                     System.out.println("最大值为"+n3);
             }else{
                if(n2>n3){
                    System.out.println("最大值为"+n2);
                }else{
                    System.out.println("最大值为"+n3);
                }
             }       

7.分支结构中的if-else(条件判断结构)与三元运算符

/*
分支结构中的if-else(条件判断结构)

一、三种结构:

第一种:

if(条件表达式) {
    
}
第二种: 二选一:
if (条件表达式){
      执行表达式1
}else(
        执行表达2
)

第三种:多选一
if(条件表达式){
      执行表达1
} else if (条件表达式){
      执行表示2
} else if (条件表达式){
    执行表示3
} else {
    执行表达式4
}

*/     
    // 举例1
             int heartBeats = 79 ;
             if (heartBeats<60 || heartBeats >100){
                 System.out.println("需要作进一步检查");
             }
                    System.out.println("检查结束");
                    
    // 举例2      
             int age=23;
             if (age<18){
                 System.out.println("还能看动画片");
             }else{
                 System.out.println("不能看动画");
             }
    // 举例3
             if (age<0) {
                 System.out.println("输入非法");
            }else if (age<18){
                System.out.println("青少年");
            }else if(age<25){
                System.out.println("中年");
            }else if(age<60){
                System.out.println("老年");
            }else{
                System.out.println("老了");
            }
   

8、算法练习,任意一个数值转成16进制

class test1{
	
 	    public static void main(String[] args){
			int i1 = 60 ;
			int i2 = i1 &15;
 			String str1 = (i2>9)? (char) (i2-10+'A')+"": i2+"";
			int i3 = i1 >>>4;
			int i4 =i3 &15;
			String str2 = (i4>9)? (char) (i4-10+'A')+"":  i4+"";
			System.out.println(str2+""+str1);
			 
			
           }
}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值