您的位置:首页 > 职场人生

黑马程序员---java基础---运算符、键盘录入、流程控制语句

2015-09-23 10:46 671 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

一、运算符

(1)逻辑运算符:

&(并且) , |(或者) , !(非) , ^(异或) , &&(短路与) , ||(短路或)

注意事项:

逻辑运算符是用于连接boolean类型的表达式或者是值

结论:

& : 有false则false

| : 有true则true

^ : 相同为false,不同为true

举例: 情侣关系

男男 , 女女 , 男女 , 女男

! : 非false则true,非true则false

偶数个不变身

逻辑双与&&(短路与) , 逻辑双或||(短路或)

&&的特点:

当左边为false的时候,右边就不执行

||的特点:

当左边为true的时候,右边就不执行

逻辑双与与逻辑单与的结果是一致的

开发中常用的逻辑运算符:

&& , || , !

(2) 位运算符:

&(与) , |(或) , ^(异或) , ~(按位取反), <<(左移) , >>(右移) , >>>(无符号右移)

位异或运算符的特点:

一个数被另一个数异或两次其值不变

<<:左移 空位补0,被移除的高位丢弃。

>>:右移 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,高位补1。

>>>:无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补。

特点: 得到的结果都是一个正数

(3)三元运算符:

格式: (关系表达式) ? 表达式1 : 表达式2 ;

执行流程:

首先计算关系表达式的值,看其返回结果是true还是false ,如果是true就执行表达式1 , 如果是false就执行表达式2 ;

二、键盘录入

键盘录入数据的3步:

a: 导包

格式: import java.util.Scanner ;

位置:

在class上边

b: 创建键盘录入对象

格式: Scanner sc = new Scanner(System.in);

c: 获取键盘录入数据

格式: int x = sc.nextInt();

三、流程控制语句

(1)顺序结构

顺序结构: 没有特定的语法规则

执行流程: 从上往下 ,依次执行

(2)if语句

f语句的第一种格式:

if(比较表达式)

{

语句体;

}

执行流程:

首先计算比较表达式的值,看其返回结果是true还是false

如果是true,就执行语句体

如果是false,就不执行语句体

if语句的第二种格式:

if(比较表达式){

语句体1 ;

}else {

语句体2 ;

}

执行流程:

首先计算比较表达式的值,看其返回结果是true还是false

如果是true就执行语句体1 ;

如果是false就执行语句体2 ;

if语句的第二种格式和三元运算符的区别:

三运运算符可以实现的使用if语句也可以实现,反之不成立.

什么时候if语句实现不能用三元改进呢?

当if语句控制的操作是一个输出语句的时候就不能。

为什么呢?因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。

if语句的第三种格式:

if(比较表达式1){

语句体1 ;

}else if(比较表达式2){

语句体2 ;

}else if(比较表达式3){

语句体3 ;

}

....

else {

语句体 n + 1 ;

}

执行流程:

首先计算比较表达式1的值,看其返回结果是true还是false ,如果是true,就执行语句体1 ,if语句结束,

如果是false计算比较表达式2的值,看其返回结果是true还是false ,如果是true,就执行语句体2 ,if语句结束,

如果是false计算比较表达式3的值,看其返回结果是true还是false ,如果是true,就执行语句体3 ,if语句结束,

... 如果没有找到对应的if语句,那么就执行else对应的语句体

注意事项: else可以省略,但是不建议省略

(3)switch语句

switch语句的格式:

switch(表达式){

case 值1 :

语句体1 ;

break ;

case 值2 :

语句体2 ;

break ;

case 值3 :

语句体3 ;

break ;

...

default :

语句体n+1 ;

break ;

}

表达式取值: 可以取值为 byte,short,char, int

jdk1.5以后可以取枚举

jdk1.7以后可以取字符串

执行流程:

首先计算表达式的值,然后和case后边的值进行匹配, 如果匹配成功,就执行对应的语句体,遇到break程序结束

如果没有找到对应case的值,那么执行default对应的语句体

switch语句的结束条件

a:遇到break就结束了

b:执行到末尾就结束了

if语句使用场景:

针对结果是boolean类型的判断

针对一个范围的判断

针对几个常量值的判断

switch语句使用场景:

针对几个常量值的判断

switch语句的注意事项:

a: case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的

b: default可以省略吗?

可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。

c: break可以省略吗?

可以省略,但是结果可能不是我们想要的。

会出现一个现象:case穿透。

最终我们建议不要省略

d: default一定要在最后吗?

不是,可以在任意位置。但是建议在最后。

e: switch语句的结束条件

a:遇到break就结束了

b:执行到末尾就结束了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: