当前位置: 代码迷 >> 综合 >> 【Java】理论知识学习-DAY08
  详细解决方案

【Java】理论知识学习-DAY08

热度:51   发布时间:2024-01-15 21:29:45.0

常用算术符相关注意点

1.算术运算符

·自增(++)与自减(--):只需要一个操作数

·前缀自增自减与后缀自增自减

前缀自增自减法(++a,--a):先进行自增或自减运算,再进行表达式计算

后缀自增自减法(a++,a--):先进行表达式运算,再进行自增或自减运算

例:

public class Test{public static void main(String[] args){int a = 5;int b = 5;int x = 2* ++a;int y = 2* b++;}
}

上述代码运行后,结果为:a=6 , b=6 , x=12 , y=10

·无论前缀还是后缀,只要不存在于一个复杂的算术式中,而是出一个单独的跨语句中

例:

public class Test{public static void main(String[] args){int a =1;int b =1;a++;++b;}
}

上述代码运行后,结果为:a=2 , b=2

2.关系运算符

·"="是赋值运算符,而"=="才是等于运算符;

·"> , < , >= , <="只支持数值类型的比较;"== , !="支持所有数据类型的比较;

·关系表达式的运算结果为布尔值;

·"> , < , >= , <="的优先度高于"== , !="

3.位运算符

·A&B(按位与):A与B都为1,结果为1

·A|B(按位或):A与B有一个为1,结果为1

·A^B(按位异或):A与B相同,结果为0;A与B不同,结果为1

·~A(取A的反值):A=0010 1110,则~A=1101 0001

·A<<2(左移2位):A=0010 1110,则A<<2=1011 1000

·A>>2(右移2位):A=0010 1110,则A>>2=1011

·A>>>2(无符号右移2位):A=0010 1110,则A>>>2=0000 1011

4.逻辑运算符

·逻辑运算"& , |"

·短路逻辑运算"&& , ||"

·逻辑运算与短路逻辑运算的区别:

(1)当"&&"的左侧位false时,将不会计算其右侧的表达式,所以短路逻辑运算可以使代码运行的效率更高

例:

public class Test{public static void main(String[] args){int a =5;boolean b = (a<4)&&(a++<10);} 
}

上述代码执行完后,结果为:b=false , a=5

(2)无论什么情况,"&"两侧的表达式都会计算

例:

public class Test{public static void main(String[] args){int a =5;boolean c = (a<4)&(a++<10);}
}

上述代码执行完后,结果为:c=false , a=6

※"|与||"的区别跟"&与&&"的区别类似

5.赋值运算符

·(%=):取模和赋值操作符

·取模运算:

负数 % 负数 = 负数

负数 % 正数 = 负数

正数 % 负数 = 正数

正数 % 正数 = 正数

例:

public class Test {public static void main(String[] args){int a = 3;int b = 10;int c = -3;int d = -10;System.out.println("10%3="+(b%a));System.out.println("10%-3="+(b%c));System.out.println("-10%3="+(d%a));System.out.println("-10%-3="+(d%c));}
}

上述代码执行完后,结果为:

 

6.条件运算符

·又叫三元/三目运算符

·Java中唯一一个需要3个操作数的运算符

·语法格式: 条件?表达式1 :表达式2

(1)先对条件进行判断;

(2)如果结果为true,则返回表达式1的值;

(3)如果结果为false,则返回表达式2的值

·与if-else选择结构类似,也可以转变为if-else语句

流程控制

1.定义

·用来控制程序中各语句的执行顺序

2.种类

(1)顺序结构

(2)选择结构

 

 

(3)循环结构

 

3.解决问题的方法

·读懂需求,分析使用到的知识点

·画流程图梳理思路  

·将流程图转化为代码  

·通过运行结果复盘和调整代码

4.编写选择结构的注意点  

·条件后面不要加分号  

·代码块只有一条语句(一个语句块)时,建议不省略{}  

5.选择结构  

·基本if选择结构    

可以处理单一或组合条件的情况  

if(表达式){语句1语句2······
}

·if-else选择结构    

可以处理简单的条件分支情况  

if(表达式){语句1
}else{语句2
}

·多重if选择结构(使用多重if选择语句处理问题时要注意顺序)    

可以处理分段的条件分支情况  

if(表达式1){语句1
}else if(表达式2){语句2
}else{语句3
}

·嵌套if选择结构    

可以处理复杂的条件分支情况    

if(表达式1){if(表达式2){语句1}else{语句2}}else{if(表达式3){语句3}else{语句4}
}

补充:

·字符串的比较使用equals方法  变量名.equals(字符串)          

·随机获得0-9之间的整数 int random=(int)(Math.random()*10)         

Math.random() 获得的是0-1之间的随机小数 0.000...~0.99999...         

Math.random()*10  0.000...~9.999...         

(int)(Math.random()*10)  0~9  

·switch选择结构    

多重分支并且条件判断是等值判断的情况    

特点:条件为等值判断    

如果需要每个case执行完后跳出,则需要在每个case后写上 break;  

switch(表达式){case 常量1:语句;break;case 常量2:语句;break;······default:语句;break;
}

·switch与多重if  

相同:都是用来处理多分支条件的结构  

不同:switch 只能处理等值条件判断的情况        

多重if 没有switch选择结构的限制,特别适合某个变量处于某个连续区间的情况

  相关解决方案