Java基础语法(二)
最后更新于:2022-04-01 09:40:42
继续接着上篇:[JavaSE入门学习5:Java基础语法(一)](http://blog.csdn.net/erlian1992/article/details/50549806)来看Java的基础语法。
## 五运算符
运算符是一种“功能”符号,用以通知Java进行相关的运算。比如,我们需要将变量age的值设置为20,这时候就
需要一个"=",告诉程序需要进行赋值操作。
Java 语言中常用的运算符可分为如下几种:算术运算符,赋值运算符,比较运算符,逻辑运算符,条件运符。
(1)算术运算符
算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法等。
Java 中常用的算术运算符:

其中,++和--既可以出现在操作数的左边,也可以出现在右边,但结果是不同的。


%用来求余数,也称为”取模运算符“。
(2)赋值运算符
赋值运算符是指为变量或常量指定数值的符号。如可以使用"="将右边的表达式结果赋给左边的操作数。
Java支持的常用赋值运算符,如下表所示:

(3)比较运算符
比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值(true或false)。
Java 中常用的比较运算符如下表所示:

1)> 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型。
2)== 、!= 两边的操作数既可以是数值类型,也可以是引用类型。
(4)逻辑运算符
逻辑运算符主要用于进行逻辑运算。Java中常用的逻辑运算符如下表所示:

我们可以从"投票选举"的角度理解逻辑运算符:
1)与:要求所有人都投票同意,才能通过某议题。
2)或:只要求一个人投票同意就可以通过某议题。
3)非:某人原本投票同意,通过非运算符,可以使其投票无效。
4)异或:有且只能有一个人投票同意,才可以通过某议题。
当使用逻辑运算符时,我们会遇到一种很有趣的“短路”现象。
比如:(one>two)&&(one<three)中,如果能确定左边one>two运行结果为false , 则系统就认为已经没有必要执行
右侧的one<three。
同理,在(one>two)||(one<three)中,如果能确定左边表达式的运行结果为true , 则系统也同样会认为已经没有必
要再进行右侧的one<three的执行。
(5)条件运算符
条件运算符(? : )也称为 “三元运算符”。
语法形式:布尔表达式?表达式1:表达式2;
运算过程:如果布尔表达式的值为true,则返回表达1的值,否则返回表达式2的值。
(6)运算符优先级
所谓优先级,就是在表达式中的运算顺序。Java 中常用的运算符的优先级如下表所示:

## 六语句
(1)Java条件语句之if
生活中,我们经常需要先做判断,然后才决定是否要做某件事。例如,如果考试成绩大于 90 分,则奖励一个
IPHONE 5S 对于这种“需要先判断条件,条件满足后才执行的情况”,就可以使用if条件语句实现。
语法:

执行过程:

如:

如果 if 条件成立时的执行语句只有一条,是可以省略大括号的;但如果执行语句有多条,那么大括号就是不可或
缺的。
(2)Java条件语句之if...else
if...else 语句的操作比if语句多了一步:当条件成立时,则执行if部分的代码块;条件不成立时,则进入else部分。
例如,如果考试成绩大于90分,则奖励一个IPHONE 5S ,否则罚做500个俯卧撑。
语法:

执行过程:

如:

(3)Java条件语句之多重if
多重if语句,在条件1不满足的情况下,才会进行条件2的判断;当前面的条件均不成立时,才会执行else块内的代
码。例如,如果考试成绩大于90分,则奖励一个IPHONE 5S,如果成绩介于70分至90分之间,则奖励一个红米,否
则罚做500个俯卧撑。
语法:

执行过程:

如:

(4)Java条件语句之嵌套if
嵌套if语句,只有当外层if的条件成立时,才会判断内层if的条件。例如,活动计划的安排,如果今天是工作日,
则去上班,如果今天是周末,则外出游玩;同时,如果周末天气晴朗,则去室外游乐场游玩,否则去室内游乐场游
玩。
语法:

执行过程:

如:

(4)Java条件语句之switch
当需要对选项进行等值判断时,使用switch语句更加简洁明了。例如:根据考试的名次,给予前4名不同的奖品。
第一名,奖励笔记本一台;第二名,奖励IPAD2 一个;第三名,奖励移动电源一个;最后一名奖励U盘一个。
语法:

执行过程:当switch后表达式的值和case语句后的值相同时,从该位置开始向下执行,直到遇到break语句或者
switch语句块结束;如果没有匹配的case语句则执行default块的代码。
如:

注意事项:
1)switch后面小括号中表达式的值必须是整型或字符型。
2)case后面的值可以是常量数值,如1、2;也可以是一个常量表达式,如2+2;但不能是变量或带有变量的表达
式,如a*2。
3)case匹配后,执行匹配块里的程序代码,如果没有遇见break会继续执行下一个的case块的内容,直到遇到
break语句或者switc语句块结束。不建议这样使用,如:

运行结果:

4)可以把功能相同的case语句合并起来,如:

5)default 块可以出现在任意位置,也可以省略。