java中的if语句、switch语句 ——运算符篇

day3

今日任务

 1.能够使用自增自减运算符并知道在前在后的区别
 2.能够知道哪些运算中发生了隐式转换   
 3.能够知道如何对数据进行强转
 4.能够使用关系运算符完成数据的比较           
 5.能够掌握不同逻辑运算符的运算规则           
 6.能够掌握三元运算符的格式和执行流程         
 7.能够使用小括号提升算数优先级      
 8.能够掌握if语句的三种格式使用             
 9.能够清楚switch语句的执行流程  

1.自增自减运算符

++:自身+1
 --: 自身-1

++在前,先自增后运算
++在后,先运算,后自增

单独使用: 	
		int a=1;
		a++//a=2

参与运算:
   		int a=2;int b=++a;		//a=3,b=3int c=b++;		//b=4,c=3

2.隐式转换

1.赋值期间:小给大,直接赋值(小、大是取值范围)

byte---short---char--int---long--float--double1	     2      2    4	     8 	   4 	  8		字节

虽然float占用4个字节,但取值范围要比8个字节的long更大,小数在底层的二进制存储,更加节省空间。

		int a=3;
​		double b=a;		// b=3.0

2.运算期间:小的和大的在一起运算的时候,会提升为大的再进运算
``

3.隐式转换

注:
1.大给小不能直接给,需要加入强转

double a=2.1;    
     		      int b=(int)a;		//b=2

2.可能会出现精度损失

03. 类型转换面试题:
一、

   1.byte b1 = 3;
   2.byte b2 = 4;
   b3.yte b3 = b1 + b2;
   // 需求: 以上代码是否存在问题, 有的话请说明原因并改成.
   byte b3 = b1 + b2;
错误原因: b1和b2是两个byte类型, 两个byte相加之前, 都会将自己提升为int类型,两个int相加, 结果还是int, int结果给byte变量赋值, 大的给小的, 需要进行强制转换。

二、

byte b = 3 + 4;
// 需求: 以上代码是否存在问题, 有的话请说明原因并改成.

疑惑点: 先看等号右边, 34 是两个整数常量. 所有整数默认都是int类型.
             两者相加结果应该也是int类型, intbyte赋值, 应该需要强制转换.

解释:
    java 存在常量优化机制, 在编译的时候(javac)
            就会将常量直接进行运算.

     .class字节码文件:
           byte b = 7;
 检测: 7是否在byte的取值范围内, 如果不在就报错 如果在, 编译通过.

4.赋值运算符

  • = 把右边的值赋给左边
  • += 把左右两边的值进行相加,然后再赋值给左边
  • -= 把左右两边的值进行相减,然后再赋值给左边
  • /= 把左右两边的值进行相除,然后再赋值给左边
  • *= 把左右两边的值进行相乘,然后再赋值给左边
  • %= 把左右两边的数相除所得的余数赋值给左边 注:区别"=“和”=="。

5.关系运算符

<
>
>=
<=
==
!=

结论 : 结果只能是boolean类型的 true, false.

6.逻辑运算符

1	&():	并且,遇falsefalse.
 		​例如:今天中午消费预算,在20~~50之间 :
	if ( (spend>=20) & (spend<=50) )
2.	| () :	或者,遇truetrue.
3.() :	取反
4.	^ (异或) :  相同为true,不同为false.

7.短路逻辑运算符

  • && :具有短路效果,左边为false,右边就不执行了
  • || :具有短路效果,左边为true,右边就不执行了
	public class Demo5Operator {
  	  /*
​     	   && : 具有短路效果, 左边为false, 右边就不执行了.
​          	      如果左边为true, 右边要继续执行.
​	     */public static void main(String[] args) {int a = 3;
   	     int b = 4;
                        // true & false
        System.out.println(++a <= 4 && b-- < 3); // false
        System.out.println(a);  // 4
        System.out.println(b);  // 3
    }
}

8.三元逻辑运算符

int a=1;
int b=2
int max = a > b ? a : b ;

9.运算符优先级

使用();

10. If语句

1. 第一种格式:
		if   (判断条件) {
   ​			语句体1}else(判断条件){
   ​			语句体2}


2. 第二种格式:

   ​	if   (判断条件1) {
   ​		语句体1}else if  (判断条件2)  {
   ​		语句体2}else if  (判断条件3)  {
   ​		语句体3}else    {
   ​	    语句体n+1}	

3.第三种格式(if嵌套):

   ​	if  (判断条件)  {
			语句体1;
   ​	if(判断条件){
   ​			语句体2}else if (判断条件) {
   ​			语句体3}else if (判断条件) {
   ​			语句体4}else{
   ​			 语句体5	}
  }

注:

  • if 语句的 {} 中如果只有一条语句, {} 可以省略不写
  • if 语句的 () 中, 最终产生的是一个boolean类型结果,根据这个结果决定程序的走向

10.流程控制语句

顺序结构:

​			Java默认的执行流程


分支结构:

 ​			ifswitch


循环结构:forwhiledo...while

11. Switch语句

switch(将要匹配的值){
    case1:
        语句体1;
        break;
    case2:
        语句体2;
        break;
    case3:
        语句体3;
        break;
    ................
    default:
        语句体n+1;
        break;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多喝清晨的粥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值