JAVAEE.基础部分:RowId = 3

不羁岁月 提交于 2019-12-18 03:30:47

运算符:

算术运算符:

  • / 取除法运算后的商 , % 取除法运算后的余数
  • 整数相除只能得到整数
  • 如果两个数据中有一个为小数,除后的结果也为小数

++, --运算符:

	单独使用:
		放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
	参与运算使用:
		放在操作数的前面,先自增或者自减,然后再参与运算。
		放在操作数的后面,先参与运算 ,再自增或者自减。
		
		作用:就是对变量进行自增1或者自减1。

自增减Test

class OperatorTest {
	public static void main(String[] args) {
		int a = 10;
		int b = 10;
		int c = 10;

		a = b++; //a=10,b=11,c=10
		c = --a; //a=9,b=11,c=9
		b = ++a; //a=10,b=10,c=9
		a = c--; //a=9,b=10,c=8
	}
}

写代码时,如果对某些运算符优先级持有怀疑态度,建议加括号。

+=test

面试题:
		short s=1;
		s = s+1; 
		s+=1;
		上面两个代码有没有问题,如果有,哪里有问题?
		
		第一个会先转为int,损失了精度,报错
		为什么第二个木有问题呢?
			扩展的赋值运算符其实隐含了一个强制类型转换。
			
			s += 1;
			不是等价于 s = s + 1;
			而是等价于 s = (s的数据类型)(s + 1);

逻辑异或:^ 相同为false,不同为true。举例,情侣关系:

  • flase
    男男,女女
  • true
    -女男,男女

位运算符

正数的原反补都相同

面试题:
		请用最有效率的方式写出计算2乘以8的结果?
			2 * 8
			
			2 << 3

class OperatorDemo3 {
	public static void main(String[] args) {
		//把<<左边的数据乘以2的移动次幂
		System.out.println(3 << 2); //3*2^2 = 3*4 = 12;
	
		// 把>>左边的数据除以2的移动次幂
		System.out.println(24 >> 2); //24 / 2^2 = 24 / 4 = 6
		System.out.println(24 >>> 2);
	}
}

三目运算符

练习:
		获取两个整数中的最大值
		int x = 100;
		int y = 200;
		
		int max = (x > y? x: y);
		System.out.println("max:"+max);
		--------------------------------------------------
		获取三个整数中的最大值
		int a = 10;
		int b = 30;
		int c = 20;
		
		int temp = (a>b)? a: b;
		int max = (temp>c)? temp: c;
		System.out.println("max:"+max);

键盘录入

/*
	我们如何实现键盘数据的录入呢?
		A:导包
			格式:
				import java.util.Scanner; 
		B:创建键盘录入对象
			格式:
				Scanner sc = new Scanner(System.in);
		C:通过对象获取数据	
			格式:
				int x = sc.nextInt();
*/
import java.util.Scanner;

class ScannerDemo {
	public static void main(String[] args) {
		//创建键盘录入数据对象
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请你输入一个数据:");
		int x = sc.nextInt();
		
		System.out.println("你输入的数据是:"+x);
	}
}

测试时要注意两个地方:1,错误数据。2,边界数据

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!