java基础Day03

运算符
算术运算符
+(正号、加法、连接符)
连接符:任何类型的数据与字符串相连接,其结果都是字符串。
案例:
public static void main(String[] args) {
System.out.println(1 + “a” + 2 );
}
-
*
/
当除数为0时,运行程序会出现 java.lang.ArithmeticException: / by zero异常。

%(取模/取余)
	public static void main(String[] args) {
		System.out.println(-10 % 3);
		System.out.println(-10 % -3);
		System.out.println(10 % -3);
		System.out.println(10 % 3);
	}

注意:
1.结果的正负与被除数有关。

赋值运算符
= 赋值号,将符号右边数据赋给左边变量。

+= 把左边和右边相加,然后再赋给左边。
案例:

short s = 1;
		//s = s + 1;会出现强制类型转换问题
		// += 可以直接转换
		s += 1;
		System.out.println(s);
		
	-=、*=、/=、%=

自增减
自增:给变量自身加1.
单独使用:放再操作数前面和后面的效果是一样的。
案例:

int i = 10;
		++i;
		System.out.println(i);
	参与运算:
		放在前面,先自增,后运算。
		放在后面,先运算,再自增。

案例1:

int a = 3;
		int b;
		b = ++a;
		System.out.println(b);

案例2:

public static void main(String[] args) {
		int a = 10, b = 10, c = 10;
		a = b++;
		c = --a;
		b = ++a;
		a = c--;


System.out.println("a =" + a + ", b = " + b + ",c = " +c);
	}

比较运算符
作用:用于连接比较表达式的,无论是操作简单还是复杂,其结果都是
boolean类型的。

	>,<,>=,<=,!=,==

逻辑运算符
作用:用于连接逻辑表达式或值,其结果为boolean类型

	&(与)
		作用:当一边的结果为false时,其表达式结果就为false,否则true。
		
	| (或)
		作用:当一边的结果为true时,其表达式结果就为true,否则false。
		
	!(非)
		作用:将结果取反
	
	^(异或)
		作用:当两边结果一样为false,否则为true。

案例:

int a = 10;
		int b = 20;
		int c = 30;
		System.out.println(a < b & b < c);
		System.out.println(a < b & b > c);
		System.out.println(a > b & b < c);
		System.out.println(a > b & b > c);

&&(短路与)
作用:和与符号作用一样。
&&与&区别:
如果使用&&,当左边为false时,右边就不执行了,其结果会直接被
判定为false。
如果使用&,不论左边是否为false,都会判断右边。
所以,&相对来说,比&&效率稍低。
||(短路或):如果左边为真,直接返回整个逻辑表达式的结果为真.

案例:
int x = 3;
int y = 4;
System.out.println((++x == 3) && (++y == 4));
System.out.println("x = " + x);
System.out.println("y = " + y);

位运算符
将两个进行位运算的操作数,先转换成二进制数,然后进行相应的位运算。
1表示true,0表示false

	&,|,^,~(取反)

案例:

System.out.println(6 & 3);
		System.out.println(6 | 3);
		System.out.println(6 ^ 3);
		System.out.println(~6);

注意:
一个数据对另一个数据异或两次,那么该数不变。
633=6

练习1:实现两个整数变量值的交换。

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

		int temp;
		temp = a;
		a = b;
		b = temp;
		System.out.println("a = " + a + ", b = " + b);
	}

额外条件:不允许有第三个变量出现。

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

		a = a + b; 
		b = a - b;
		a = a - b;
		System.out.println("a = " + a + ", b = " + b);
	}

缺陷:如果两个数比较大,那么它们的和很容易超出整型范围。

public static void main(String[] args) {
		int a = 6;
		int b = 3;

		a = a ^ b;//
		b = a ^ b;//
		a = a ^ b;
		System.out.println("a = " + a + ", b = " + b);
	}	

移位运算符

将操作数,先转换成二进制数,然后统一向对应的方向移动相应的位数。
		
		<<(左移):左边最高位舍去,右边补0。
			规律:向左移动几位,就是乘以2的几次幂。00000000 00000000 00000000 10100110
		
		>>(右移):最高位是0,左边补0,最高位是1,左边补1.
			规律:向右移动几位,就是除以2的几次幂。
			
		>>>(无符号右移):无论最高位是0还是1,左边都补0.

案例:使用最高效率算2*8的结果.

System.out.println(2 << 3);

三元运算符
格式:布尔表达式 ? 结果1 : 结果2
当布尔表达式结果为true,返回结果1,否则返回结果2.

案例:

int i = 6 < 2 ? 3 : 2;
		System.out.println(i);
	
	案例2:
	//比较两个整数是否相同

	
	案例:获取三个数中的最大值
	//比较两个整数是否相同

键盘录入格式
步骤:
1.在class那一行的上面写入:import java.util.Scanner;
2.创建扫描器对象:Scanner sc = new Scanner(System.in);
3.通过对象获取键盘录入数据:int num = sc.nextInt();

案例:通过键盘录入两个数据,求和。

//1.创建扫描器对象
		Scanner sc = new Scanner(System.in);

		//2.获取键盘录入数据
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();

		System.out.println(num1 + num2);

顺序结构语句
按照从上到下的顺序执行的语句。

判断语句
格式1:
if (比较表达式) {
语句体;
}

执行流程:
1.先计算比较表达式的值,看返回值是true还是false
2.如果是true就执行语句体的代码,否则不执行。

案例:大于18岁可以浏览页面

注意:
1.如果语句体只有一条语句,大括号可以省略。建议不要省略。
2.有大括号就没有分号,有分号就没有大括号。

格式2:

if (比较表达式) {
		语句体1;
	} else {
		语句体2;
	}

执行流程:
1.先计算比较表达式的值,看返回值是true还是false
2.如果是true就执行语句体1的代码,否则执行语句体2的代码。

案例:如果某个数等于0,男厕欢迎你

案例:判断两个数中的较大值

int x = 10;
int y = 20;

注意
if…else语句与三元运算的区别:
三元运算必须有返回的结果,而if…else可以直接输出。
if…else能做到的,三元不一定能做到。
三元能做到的,if…else一定能做到。

案例:判断一个数是奇数还是偶数。

格式3

if (比较表达式1) {
			语句体1;
		} else if(比较表达式2) {
			语句体2;
		} else if (比较表达式3) {
			语句体3;
		} ....
		else {
			语句体n+1;
		}

执行流程:
1.先计算比较表达式1的值,看返回值是true还是false
2.如果是true就执行语句体1的代码,否则继续向下依次判断比较表达式。
3.满足条件就执行,如果都不满足,执行else中的代码。

注意:
最后的else是可以省略的。
案例

public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个数:");
		int x = sc.nextInt();
		if (x == 10) {
			System.out.println("男厕所欢迎你");
		} else if (x == 20) {
			System.out.println("女测欢迎你");
		} else {
			System.out.println("您的性别无法识别");
		}
	}			
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值