[笔记] java-Day 03

目录

3.1算术运算符

3.2赋值运算符

3.3比较运算符(关系运算符)

3.4逻辑运算符

3.5位运算符

3.6三元运算符

3.7程序流程控制

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

3.7.2 分支结构中的switch - case (选择结构)


3.1算术运算符

+ 、 - 、 * 、 / 、 % 、 (前)++  、(后)++ 、(前)-- 、 (后)-- 、 +(连接符号)

// 除号:
		int num1 = 12;
		int num2 = 5;
		int result1 = num1 / num2;
		System.out.println(result1); //2
//% 取余运算
		//结果与被模数(分子)相同
		//开发中,常用 % 来判断能否被除尽的情况
		int m1 = 12;
		int n1 = 5;
		System.out.println("m1 % n1 =" + m1 % n1);//2

		int m2 = -12;
		int n2 = 5;
		System.out.println("m2 % n2 =" + m2 % n2);//-2

		int m3 = 12;
		int n3 = -5;
		System.out.println("m3 % n3 =" + m3 % n3);//2

		int m4 = -12;
		int n4 = -5;
		System.out.println("m4 % n4 =" + m4 % n4);//-2
//(前)++:前自增1,然后再运算
		//(后)++:先运算,然后自增1
		int a1 = 10;
		int b1 = ++a1;
		System.out.println("a1 = " + a1 + ",b1 = " + b1);//a1 = 11,b1 = 11

		int a2 = 10;
		int b2 = a2++;
		System.out.println("a2 = " + a2 + ",b2 = " + b2);//a2 = 11,b2 = 10
//(前)--:先自减1,后运算
		//(后)--:先运算,后自减1

		int a4 = 10;
		int b4 = a4--;
		System.out.println("a4 = " + a4 + ",b4 = " + b4);// a4 = 9,b4 = 10

特别说明

1、 (前)++:前自增1,然后再运算

       (后)++:先运算,然后自增1

2、(前)-- : 先自减1,后运算

      (后)-- :先运算,后自减1

3、连接符(+):只能使用在String 与其他数据典型变量之间

3.2赋值运算符

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

//赋值符号:=
		int i1= 10;
		int j1 = 10;

		int i2,j2;
		//连续赋值
		j2 = i2 = 10;

		int i3 = 10,j3 = 20;
		int num1 = 10;
		num1 += 2; // num1 = num1 +2;
		System.out.println(num1);//12

		int num2 = 12;
		num2 %= 5;
		System.out.println(num2);

		short s1 = 10;
		//s1 = s1 + 2;//编译失败
		s1 += 2;//不会改变变量本身的数据类型
		System.out.println(s1);

特别说明

运算的结果不会改变变量本身的类型

3.3比较运算符(关系运算符)

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

        int i = 10;
		int j = 20;

		System.out.println(i == j);//false
		System.out.println(i = j);//20

特别说明

1、比较运算符的结果是boolean类型

2、  >  、 <  、    >=  、 <=  :只能使用在数值类型的数据之间

3、==  、 =!:不仅可以使用在数值类型数据之间,还可以使用在其他引用类型变量之间

3.4逻辑运算符

&(逻辑与)、  &&(短路与) 、  |(逻辑或)、  ||(短路或)  

^(逻辑异或,当二者操作相同时为false,操作相反时为true)   、  !(逻辑非)

//区分& 与 &&
		//相同点1:& 与 && 的运算结果相同
		//相同点2:当符号左边是true时,两者都会执行符号右边的运算
		//相同点3:当符号左边数false时,$继续执行符号右边的运算,&&不再执行符号右边的运算
		//开发中,推荐使用&&

		boolean b1 = false;
		int num1 = 10;
		if (b1 & (num1++ >0))
		{
			System.out.println("北京");
		}
		else 
		{
			System.out.println("南京");
		}

		System.out.println("num1 = "+num1);//11

		boolean b2 = false;
		int num2 = 10;
		if (b2 && (num2++ >0))
		{
			System.out.println("北京");
		}
		else 
		{
			System.out.println("南京");
		}
		System.out.println(num2);//10
//区分:| 与||
		//相同点1:| 与||的运算结果相同
		//相同点2:当符号左边是false时,二者都会执行符号右边的运算
		//相同点3:当符号左边是true时,| 继续执行符号右边的运算,||不再继续执行符号右边的运算
		//开发中,推荐使用||

		boolean b3 = true;
		int num3 = 10;
		if (b3 || (num3++ >0))
		{
			System.out.println("北京");
		}
		else 
		{
			System.out.println("南京");
		}
		System.out.println(num3);//11

		boolean b4 = true;
		int num4 = 10;
		if (b4 || (num4++ >0))
		{
			System.out.println("北京");
		}
		else 
		{
			System.out.println("南京");
		}
		System.out.println(num4);//10

特别说明

逻辑运算符操作的都是boolean类型的变量,且结果也是boolean型

3.5位运算符

 <<  、 >>  、 >>>(无符号右移)   、 ^    、 ~(取反)  、&  、  |   

        int i = 2;
		System.out.println("i = " + (i << 2));//8 = 2 ^ 2 ^2

		int m = 12;
		int n = 5;
		System.out.println("m & n :" + (n & n));//4
		System.out.println("m | n :" + (n | n));//13
		System.out.println("m ^ n :" + (n ^ n));//9

特别说明

1、位运算符操作的都是整型的数据

2、<< ,在一定范围内,每向左移一位,相当于 *2

      >> ,在一定范围内,每向右移一位,相当于 /2

3.6三元运算符

1、结构:(条件表达式)?表达式1:表达式2

		//获取两个整数的最大值
		int m = 12;
		int n = 5;

		int max = (m > n)? m : n;
		System.out.println(max);//12
	    
		double mum = (m > n)? 2 : 1.0;
		System.out.println(mum);//2.0

2、说明

        ①条件表达式的结果为boolean类型

        ②根据条件表达式真或假,决定执行表达式1,还是表达式2

                如果表达式为true,则执行表达式1

                如果表达式为false,则执行表达式2

        ③表达式1和表达式2要求是一致的

        ④三元运算符可以嵌套使用

3、凡是可以使用三元运算符的地方,都可以改写为if-else

      反之,不成立

4、如果程序既可以使用三元运算符,又可以使用if-else结构,优先选择三元运算符.

原因:简洁、执行效率高

3.7程序流程控制

顺序结构:程序从上到下执行

分支结构:

                if - else if - else

                switch - case

循环结构:

                for

                while

                do - while

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

//第一种:

if (条件表达式)
{
	执行表达式
}


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


//第三种:多选一
if (条件表达式)
{
	执行表达式1
}
else if (条件表达式)
{
	执行表达式2
}
……
else
{
	执行表达式n
}

说明

1、else 结构时可选的

2、针对于条件表达式:

    如果多个条件表达式之间是“互斥”关系(或没有交集的关系),哪个判断和执行语句声明在上面还是下面,无所谓

    如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明放在上面

    如果多个条件表达式之间有包含的关系,通常情况下。需要将范围小的声明在范围大的上面,否则,范围小的就没有机会执行

3、if-else 结构是可以相互嵌套的

4、如果if - else 结构中的执行语句只有一行时,对应的一对()可以省略,但是,不建议大家省略
对于else服从就近原则

3.7.2 分支结构中的switch - case (选择结构)

switch(表达式){
case 常量1:
	执行语句1;
	//break;
	
case 常量2:
	执行语句2;
	//break;
	
……

default:
	执行语句;
	//break;
}

说明

①根据switch表达式中的值,依次匹配多个case中的常量,一旦匹配成功,则进入相应case结构中,调用其执行语句

当调用完这个执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch - case结构末尾结束为止

②break,可以使用在switch - case结构当中,表示一旦执行到此关键字,跳出switch - case结构

③ switch结构中的表达式。只能是如下的6种类型之一:byte , short , char , int , String类型,枚举类型(JDKA5.0新增的)

④case之后,只能声明常量,不能声明范围

⑤ break关键字在switch - case结构中是可选的

⑥ default:相当于 if- else 中的else,default结构是可选的,而且位置是灵活的

⑦ 如果switch - case 结构中的多个case执行语句相同,就可以考虑进行合并

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值