Java学习—03


前言

  在学Java的运算符之前,可能在大家的理解中运算符就是数学中的运算符:加+、减-、乘*、除/、取余、大小比较等。而在计算机中的运算符,与数学中的运算符类似,但是又有不同,下面则是学习计算机运算符的运用。


一、算术运算符

  算术运算是计算机最基本的运算,包含有:加+、减-、乘*、除/、求模%

1.加(+)运算符

运算符+,在数学中就是加的运算,而在计算机中,它则会有两种情况。

1.1 作为运算符

public class Test {
    public static void main(String[] args) {
        double a=14.0;
        int b=3;
        double c=a+b; //整型自动转化小数
      System.out.println(c);//结果:17.0
	//在变量后写两个+的运算时
	int d=10;
	d++;//++在后,先运算,先自身+1;d=d+1
	System.out.println(d);//结果:11
	
	//在变量前写两个+的运算时
	int e=10;
	++e;//++在前,先自身+1,然后参与运算;e=e+1
	System.out.println(e);//结果:11

	//参加其他运算时两个+的运算会有区别
	 c=b*(d++)
	//++在后,先运算,再自身+1;
	//等价于:c=b*d => c=3*10;d++;
	System.out.println(c);//结果:30.0
	System.out.println(d);//结果:11
	
 	c=b*(++d)
	//++在前,先自身+1,再进行运算;
	//等价于:d++;c=b*d =>c=3*11;
	System.out.println(c);//结果:33.0
	System.out.println(d);//结果:11
    }
}

1.2作为拼接符

//输出打印时,输出的内容有字符或字符串
public class Test {
    public static void main(String[] args) {
        int a=14;
        int b=3;
        int c=a+b; 
      System.out.println("c的结果是:"+c);//打印结果:c的结果是:7
      System.out.println("14"+c);//打印结果:1417
      //有双引号或单引号的内容就是字符串或字符,+号就会变成拼接符
    }
}

2.减(-)运算符

public class Test {
    public static void main(String[] args) {
        int a=14;
        int b=3;
        int c=a-b; 
      System.out.println("c的结果是:"+c);//打印结果:c的结果是:11
      
    //在变量后写两个-的运算时
	int d=10;
	d--;//--在后,先运算,先自身-1;d=d-1
	System.out.println(d);//结果:9
	
	//在变量前写两个+的运算时
	int e=10;
	--e;//++在前,先自身-1,然后参与运算;e=e-1
	System.out.println(e);//结果:9

	//参加其他运算时两个-的运算会有区别
	 c=b*(d--)
	//--在后,先运算,再自身-1;
	//等价于:c=b*d => c=3*10;d--;
	System.out.println(c);//结果:30
	System.out.println(d);//结果:9
	
 	c=b*(--d)
	//--在前,先自身-1,再进行运算;
	//等价于:d--;c=b*d =>c=3*9;
	System.out.println(c);//结果:27
	System.out.println(d);//结果:9
    }
}

3.乘(*)运算符

public class Test {
    public static void main(String[] args) {
        int a=14;
        int b=3;
        int c=a*b; 
      System.out.println("c的结果是:"+c);//打印结果:c的结果是:42
      
    }
}

4.除(/)运算符

public class Test {
    public static void main(String[] args) {
        int a=9;
        int b=3;
        int c=a/b; 
      System.out.println("c的结果是:"+c);//打印结果:c的结果是:3
    }
}

4.求模(%)运算符

//计算机的求模运算,其实就是数学里面所说的取余运算,规定的说法不一样
public class Test {
    public static void main(String[] args) {
        int a=9;
        int b=3;
     	c=a%b; //取余
        System.out.println("a%b="+c);
    }
}

二、赋值运算

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

public class Test {
    public static void main(String[] args) {
        int a=20;
        int b=10;
//        a+=b; //a=a+b
//        System.out.println(a);

//         a-=b; //a=a-b;
//        System.out.println(a);

//          a*=b+1; //a=a*(b+1)
//       System.out.println(a);

//        a/=b+1; //a=a/(b+1)
//        System.out.println(a);
        
         a%=b+1; //a=a%(b+1)
        System.out.println(a);
    }
}

三、关系运算

  关系运算符:大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、不等于(!=)

//关系运算就是对变量的值进行比较,比较的结果都是boolean类型,只有两个:true或false
public class Test {
    public static void main(String[] args) {
        int a=15;
        int b=15;
        System.out.println("a>b===="+(a>b)); //false
        System.out.println("a<b===="+(a<b));//false
        System.out.println("a>=b===="+(a>=b));//true
        System.out.println("a<=b===="+(a<=b));//true
        System.out.println("a==b===="+(a==b));//true
        System.out.println("a!=b===="+(a!=b));//false
    }
}

四、逻辑运算

  逻辑运算符:&&(短路与);||(短路或);!(非,也可称为取反)。为什么会叫短路与,短路或。因为&&和||是短路运算符,具有短路运算的功能,所谓短路运算符,即当第一个操作数已经能够确定整个表达式的值时,就不再计算第二个操作数。可以理解为从左往右计算,当第一个计算出结果后,后面的计算则不会执行。

public class Test {
    public static void main(String[] args) {
        int a=10;
        int b=15;
        int c=10;
        
//&&: 连接两个关系运算符。 两个关系运算符得到的结果都是true时,最终的结果才是true.
//       boolean f1=a<b&&b>c;//a>b返回的是true 且 a>c返回的结果也是true时
 		boolean f1=a>b&&b>c;
        System.out.println(f1);
//&&的关系运算可以更好的理解什么是短路运算,a>b的结果是false,
//那个这个f1的结果就是false,最后b>c的关系运算可以不用执行,
//因为第一个操作数已经得出一个结果能够确定整个表达式的结果。
        
//||: 连接两个关系运算符。 两个关系运算符只要由一个为true,最终的结果就可以是true
        boolean f2=a>b||b>c;
        System.out.println(f2);

//!: 取反。
        boolean f3=!(a>b||b>c);
        System.out.println(f3);
    }
}

五、位运算

  位运算符的运算和上面的逻辑运算有一点的相似,但又区别于逻辑运算。位运算是关于二进制的逻辑运算,即对二进制每一位进行运算,位运算没有短路运算这个说法,即使是得到结果能确定表达式的结果,后面的第二个操作数还是需要执行一遍
位运算符:与( & )、或( | )、异或( ^ )

public class Test {
    public static void main(String[] args) {
         int a=5; //转为二进制:101
         int b=4; //转为二进制:100
//与( & ):两个为1时结果为1,否则为0
         int c=a&b; //二进制结果:100 打印内容:4
 /*计算方式:
  			a 1 0 1
			b 1 0 0
二进制结果:  1 0 0
打印内容:     4
*/

//或( | ):两个其中有一个为1时结果就为1,否则为0
         int d=a|b; //二进制结果:101 打印内容:5
 /*计算方式:
  			a 1 0 1
			b 1 0 0
二进制结果:  1 0 1
打印内容:     5
*/

 //异或( ^ ):相同则为0 不同则1
         int f=a^b; //二进制结果:001 打印内容:1
 /*计算方式:
  			a 1 0 1
			b 1 0 0
二进制结果:  0 0 1
打印内容:     1
*/
        System.out.println("c==="+c);
        System.out.println("d==="+d);
        System.out.println("f==="+f);
    }
}

ps:这种位运算方式不推荐使用,作为了解。有兴趣的可以深入了解。

六、三目运算

三目运算语法:表达式?值1:值2
如果表达式为真,则执行值1,否则执行值2

public class Test {
    public static void main(String[] args) {
        int age = 25;
        String s = age > 18 ? "成年" : "未成年";
        //表达式的结果是true,执行值1,即打印结果:成年
        System.out.println(s);
    }
}

七、输入对象

  输入对象的方法:Scanner,里面包含next(),nextInt()等;
  next()用来输入字符串;nextInt()用来输入整数;nextdouble()用来输入小数;
  输入对象的写法:Scanner 变量名=new Scanner(System.in);

public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);//输入对象。
        System.out.println("请输入姓名:");
        String n=sc.next(); //在控制台输入的字符串 赋值给变量s
        System.out.println("请输入年龄:");
        int a=sc.nextInt();
        System.out.println("你输入的内容:"+n);
        System.out.println("你输入的年龄:"+a);
    }
}

总结

  本章内容主要学习的是计算机的运算符及其计算方式,需要注意的是加(+)运算符,在不同情况下的用法。逻辑运算和位运算的区别,最后注意的是++(–)在前和在后的区别是什么。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值