黑马程序员---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:执行到末尾就结束了
一、运算符
(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:执行到末尾就结束了
相关文章推荐
- 面试之代码规范(未完)
- 面试常问题的Jvm的原理
- 黑马程序员---java基础---常量、变量、运算符
- 作为一名Java程序员,我为什么不在生产项目中转向Go
- 面试题14:调整数组顺序使奇数位于偶数前面
- 面试题
- 面试题13:在O(1)时间删除链表结点
- 面试题12:打印1到最大的n位数
- 面试题11:数值的整数次方
- 面试题10:二进制中1的个数
- 面试题8:旋转数组的最小数字
- 13 种激励程序员的方法
- iOS进阶面试题----Block部分
- iOS进阶面试题----多线程
- 面试题7:用两个栈实现队列
- PHP面试总结
- 面试题6:重建二叉树(前序遍历和中序遍历)
- 程序员被人喜欢的13点原因
- Android面试题 描述一下android的系统架构
- 程序员的自我修养——装载、链接、库