新手小白逆袭大神之路03----带你学好Java

一、算术运算符

  +、-、*、/、%、++、--

public class Test{
	public static void main(String[] args){  
        int num1=10;
        int num2=20;
        int result=num1+num2;
        System.out.println(result);//30
        System.out.println(num1-num2);//-10
        System.out.println(num1*num2);//200
        System.out.println(num1/5);//2
        System.out.println(num1%3);//1
    }
}
++与--
++:自增1   --:自减1
 public class Test{
	public static void main(String[] args){  
         //++a先自增1,在使用
        int a=10;
        System.out.println(++a);//11
        System.out.println(a);//11
        //b++先使用,在自增1
        int b=10;
        System.out.println(b++);//10
        System.out.println(b);//11
        
        //--自减
        int c=11;
        System.out.println(c--);//11
        System.out.println(c);//10

        int d=21;
        System.out.println(--d);//20
        System.out.println(d);//20
    }
}

1、算术运算符的深入

特殊点一:

public class Test{
	public static void main(String[] args){  
         //byte类型做运算,会先向上转型成int类型(10是int类型)
        //向上转型使用最高位补位(补到最高位)
        //向下转型从高位开始舍弃
        byte b1=10;
        //b1---10----1010
        //    int----0000,0000,0000,0000,0000,0000,0000,1010
        byte b2=20;
        //b2----20----0001,0100
        //    int-----0000,0000,0000,0000,0000,0000,0001,0100
        //结果:10与20的二进制表示结果互补
//        0000,0000,0000,0000,0000,0000,0000,1010
//        0000,0000,0000,0000,0000,0000,0001,0100
//        0000,0000,0000,0000,0000,0000,0001,1110
        byte result=(byte) (b1+b2);
        System.out.println(result);//30
        
        
        //特殊点二:
          short s1=10;
//        s1----10----1010
//        short----0000,0000,0000,1010
//        int---0000,0000,0000,0000,0000,0000,0000,1010
          short s2=20;
//        s2-----20----1,0100
//        short----0000,0000,0001,0100
//        int------0000,0000,0000,0000,0000,0000,0001,0100
//        结果:
//        s1:0000,0000,0000,0000,0000,0000,0000,1010
//        s2:0000,0000,0000,0000,0000,0000,0001,0100
//        结果:0000,0000,0000,0000,0000,0000,0001,1110
//       (short):0000,0000,0001,1110
          short result=(short) (s1+s2);
          System.out.println(result);
        
        
        //特殊点三:
        //除了btye、short类型做运算会向上转型成int类型外,其他的类型会向高看齐
        //为什么btye、short类型做运算会向上转型成int类型呢?
        //因为系统取数据时,都按32位取,btye类型是1个字节,占8位,不够32位,补成32位,short同理
        byte b=10;
        short s=10;
        int i=10;
        long l=10;
        float f=10;
        double d=10;
        System.out.println(b+b);//结果的类型:int
        System.out.println(s+s);//结果的类型:int
        System.out.println(b+s);//结果的类型:int
        System.out.println(b+i);//结果的类型:int
        System.out.println(b+l);//结果的类型:long
        System.out.println(i+l);//结果的类型:long
        System.out.println(i+f);//结果的类型:float
        System.out.println(d+l);//结果的类型:double
        
        
        //特殊点四:char类型可以做算数运算,获取的是Unicode码
        char c='a';//Unicode--97
        int i=c+1;
        System.out.println(i);//98
        
        
		//特殊点五:小数做运算可能损失精度,后续会用BigDecimal,去解决小数运算损失精度问题
        double d1=0.5;
        double d2=0.4;
        System.out.println(d1-d2);//0.09999999999999998
        
        //特殊点六:++a;与b++;效果是一样的,分号表示执行语句的结束,不管先加还是后加,都得加
        int a=10;
        ++a;
        System.out.println(a);//11
        
        int b=10;
        b++;
        System.out.println(b);//11
        
        //特殊点七::num=(byte)(num+1);公示为了处理特殊点byte、short
        byte num=10;
        //研究++num的底层实现:num=(byte)(num+1);公示为了处理特殊点byte、short
        ++num;
        System.out.println(num);//11

		//特殊点八:
        int i=0;
        i=++i;
        //底层实现:
        i=(int)(i+1);
        i=i;
        System.out.println(i);//1
        
        //特殊点九: i=i++;是特殊且固定的写法
        int i=0;
        i=i++;
        //底层实现:
        int temp=i;//temp记录了i的最初值0
        i=(int)(i+1);//i---->1
        i=temp;//i=0
        System.out.println(i);//0
    }

}

二、赋值运算符 

=、+=、-=、*=、/=、%=  

public class Test{
	public static void main(String[] args){  
        int num=10;
        num+=5;//num=(int)(num+5);
        num-=5;//num=(int)(num-5);
        num*=5;//num=(int)(num*5);
        num/=5;//num=(int)(num/5);
        num%=3;//num=(int)(num%3);
        System.out.println(num);//1   前边都抵消掉了,只算最后的取余
        
        //特殊点一:
        short s=1;
        s=s+1;
        System.out.println(s);
        
        //特殊点二:+=里边有强制类型转换---->s=(short)(s+1)
        short s=1;
        s+=1;
        System.out.println(s);
      }
}

三、关系运算符 

==、!=、>、>=、<、<=  

public class Test{
	public static void main(String[] args){  
        boolean bool=10==20;
        System.out.println(bool);//false

        System.out.println(10!=20);//true
        System.out.println(10>20);//false
        System.out.println(10>=20);//false
        System.out.println(10<20);//true
        System.out.println(10<=20);//true
     }
}

注意:

  1. ==是判断两个值是否相等

  2. !=是判断两个是是否不相等

  3. !=里的!是英文符号

  4. 关系运算符的结果都是boolean类型

四、Scanner

理解:接收从键盘输入的数据

//导包
import java.util.Scanner;
public class Test{
    public static void main(String[] args){
         //创建Scanner类的对象
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入int类型的数据");
        int i=sc.nextInt();//输入数据赋值给变量i
        System.out.println("请输入double类型的数据");
        double d=sc.nextDouble();
        System.out.println("请输入字符串类型的数据");
        String str=sc.next();
        System.out.println(i);
        System.out.println(d);
        System.out.println(str);
      }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值