java基础总结_03
来源:互联网 发布:spycall在淘宝怎么买 编辑:程序博客网 时间:2024/05/02 04:19
运算符
算术运算符
A:+,-,*,/,%,++,-- B:+的用法 a:加法 b:正号 c:字符串连接符 C:/和%的区别 数据做除法操作的时候,/取得是商,%取得是余数 D:++和--的用法 a:他们的作用是自增或者自减 b:使用 **单独使用 放在操作数据的前面和后面效果一样。 a++或者++a效果一样。 **参与操作使用 放在操作数的前面:先自增或者自减,再参与操作 int a = 10; int b = ++a; 放在操作数的后面:先参与操作,再自增或者自减 int a = 10; int b = a++;
赋值运算符
A:=,+=,-=,*=,/=,%=等 B:=叫做赋值运算符,也是最基本的赋值运算符 int x = 10; 把10赋值给int类型的变量x。 C:扩展的赋值运算符的特点 隐含了自动强制转换。 面试题: short s = 1; s = s + 1; short s = 1; s += 1; 请问上面的代码哪个有问题?
比较运算符
A:==,!=,>,>=,<,<= B:无论运算符两端简单还是复杂最终结果是boolean类型。 C:千万不要把==写成了=
逻辑运算符
A:&,|,^,!,&&,|| B:逻辑运算符用于连接boolean类型的式子 C:结论 &:有false则false |:有true则true ^:相同则false,不同则true。 情侣关系。 !:非true则false,非false则true &&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。 ||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。
(5)位运算符(了解)
A:^的特殊用法 一个数据针对另一个数据位异或两次,该数不变 B:面试题 a:请实现两个变量的交换 **采用第三方变量 **用位异或运算符 左边a,b,a 右边a^b b:请用最有效率的方式计算出2乘以8的结果 2<<3
三元运算符
A:格式 比较表达式?表达式1:表达式2; B:执行流程: 首先计算比较表达式的值,看是true还是false。 如果是true,表达式1就是结果。 如果是false,表达式2就是结果。 C:案例: a:比较两个数据是否相等 b:获取两个数据中的最大值 c:获取三个数据中的最大值
流程控制语句分类
顺序结构(程序中最简单最基本的流程控制)选择结构循环结构
if语句(选择结构)
(1)三种格式 A:格式1 if(比较表达式) { 语句体; } 执行流程: 判断比较表达式的值,看是true还是false 如果是true,就执行语句体 如果是false,就不执行语句体 B:格式2 if(比较表达式) { 语句体1; }else { 语句体2; } 执行流程: 判断比较表达式的值,看是true还是false 如果是true,就执行语句体1 如果是false,就执行语句体2 C:格式3 if(比较表达式1) { 语句体1; }else if(比较表达式2){ 语句体2; } ... else { 语句体n+1; } 执行流程: 判断比较表达式1的值,看是true还是false 如果是true,就执行语句体1 如果是false,就继续判断比较表达式2的值,看是true还是false 如果是true,就执行语句体2 如果是false,就继续判断比较表达式3的值,看是true还是false ... 如果都不满足,就执行语句体n+1(2)注意事项 A:比较表达式无论简单还是复杂,结果是boolean类型 B:if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条,不能省略。 建议:永远不要省略。 C:一般来说,有左大括号,就没有分号,有分号,就没有左大括号。 D:else后面如果没有if,是不会出现比较表达式的。 E:三种if语句其实都是一个语句,只要有一个执行,其他的就不再执行。(3)三元运算符和if语句第二种格式的关系 所有的三元运算符能够实现的,if语句的第二种格式都能实现。 反之不成立。 如果if语句第二种格式控制的语句体是输出语句,就不可以。 因为三元运算符是一个运算符,必须要有一个结果返回,不能是一个输出语句。
switch语句(选择结构)
(1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n+1; break; } 格式解释说明: switch:说明这是switch语句。 表达式:可以是byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 case:后面的值就是要和表达式进行比较的值 break:表示程序到这里中断,跳出switch语句 default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else(2)面试题 switch语句的表达式可以是byte吗?可以是long吗?可以是String吗? 可以,不可以,JDK7以后可以(3)执行流程: A:首先计算表达式的值 B:和每一个case进行匹配,如果有就执行对应的语句体,看到break就结束。 C:如果没有匹配,就执行default的语句体n+1。(4)注意事项: A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的 B:default可以省略吗? 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。 特殊情况: case就可以把值固定。 A,B,C,D C:break可以省略吗? 可以省略,但是结果可能不是我们想要的。 会出现一个现象:case穿透。 最终我们建议不要省略 D:default一定要在最后吗? 不是,可以在任意位置。但是建议在最后。 E:switch语句的结束条件 a:遇到break就结束了 b:执行到末尾就结束了(5)if语句和switch语句各自的场景 A:if 针对boolean类型的判断 针对一个范围的判断 针对几个常量的判断 B:switch 针对几个常量的判断
循环语句(掌握)
(1)有三种:for,while,do...while(2)for循环语句 A:格式 for(初始化语句;判断条件语句;控制条件语句){ 循环体语句; } 执行流程: a:执行初始化语句 b:执行判断条件语句 如果这里是true,就继续 如果这里是false,循环就结束 c:执行循环体语句 d:执行控制条件语句 e:回到b B:注意事项 a:判断条件语句无论简单还是复杂,结果是boolean类型 b:循环体语句如果是一条,可以省略大括号,但是不建议(3)while循环 A:基本格式 while(判断条件语句) { 循环体语句; } 扩展格式: 初始化语句; while(判断条件语句){ 循环体语句; 控制条件语句; } 通过查看这个格式,我们就知道while循环可以和for循环等价转换。 B:while的练习 把for语句的练习用while改进 C:for和while的区别 a:使用上的区别 for语句的那个控制条件变量,在循环结束后不能在使用了。 而while的可以继续使用。 b:理解上的区别 for适合于一个范围的判断 while适合次数不明确的 举例:吃葡萄(4)do...while循环 A:基本格式 do { 循环体语句; }while(判断条件语句); 扩展格式: 初始化语句; do { 循环体语句; 控制条件语句; }while(判断条件语句); 通过查看格式,我们就可以看出其实三种循环的格式可以是统一的。 B:三种循环的区别 a:do...while循环至少执行一次循环体 b:for和while必须先判断条件是否是true,然后后才能决定是否执行循环体(5)循环使用的注意事项(死循环) A:一定要注意修改控制条件,否则容易出现死循环。 B:最简单的死循环格式 a:while(true){...} b:for(;;){}
控制跳转语句(掌握)
(1)break:中断的意思 A:用在循环和switch语句中,离开此应用场景无意义。 B:作用 a:跳出单层循环 b:跳出多层循环,需要标签语句的配合(2)continue:继续 A:用在循环中,离开此应用场景无意义。 B:作用 a:跳出单层循环的一次,可以继续下一次(3)return:返回 A:用于结束方法的,后面还会在继续讲解和使用。 B:一旦遇到return,程序就不会在继续往后执行。
1 0
- java基础总结_03
- Java从基础开始_03面向对象
- C++基础_03
- javascript基础_03
- Java线程_03
- Java学习笔记_03
- java多态_03
- Qt 消息基础相关_03
- 黑马程序员--JAVA基础_03(继承、final修饰符、抽象、模版方法设计模式)
- Java千百问_03基础语法(012)_transient关键字有什么用
- Java千百问_03基础语法(013)_>、>>、>>>有什么区别
- Java千百问_03基础语法(014)_volatile关键字有什么用
- Java千百问_03基础语法(015)_System.exit(0)有什么用
- Java千百问_03基础语法(016)_main方法是什么
- Java千百问_03基础语法(017)_static有什么用
- Java千百问_03基础语法(018)_注释是什么
- Java千百问_03基础语法(019)_注解是什么
- Java千百问_03基础语法(020)_注解、注释有什么区别
- CSS中不能被继承的元素
- C语言学习总结
- [Leetcode]368. Largest Divisible Subset
- 分布式系统部署、监控与进程管理的几重境界
- ACM HDU 1061 Rightmost Digit
- java基础总结_03
- cesiumjs开发实践 (一)
- 搭建Dubbo+Zookeeper
- drawable文件夹详解
- poj 1693 模拟
- 面试题41:和为s的两个数字VS和为s的连续正数序列
- JSON
- 【杭电-oj】-1002-A + B Problem II(大数相加)
- 本地通知 UILocalNotification