概述
一. Day3复习回顾
1. 三目运算符:简化分支的取值表达式
A. 格式:布尔表达式1?取值1:取值2
B. 规则,首先计算布尔表达式1的值,为true则计算并返回取值1,为false则计算并返回取值2的值
C. 注意1:三目运算符的类型对齐问题:取值1和取值2的类型必须一致,若不一致,则隐式提升为一致
例如:
int a = 10;
double b = 20.1;
int max = a > b? a : b; //报错,b是double,a是int,隐式提升为double
double max = a > b?a : b;//正确,max是double类型,可以接收double类型
D. 注意2:三目运算符,如果布尔表达式为true,则不会计算表达式3的值;如果布尔表达式为false,则不会计算表达式2的值
E. 注释3:三目运算符的返回值必须被接收,不能单独存在三目运算符
例如:
a > b? a : b;//报错,单独存在
int max = a > b? a : b;//被max变量接收
System.out.println(a > b? a : b);//被打印函数接收
2.
3. 重点题整理(4.1板书中)
10.12
解析:
A:new是关键字 B:可以 C: 不能以数字开头 D:.不是合法的标识符
原理:标识符是由_,数字,字母,以及$组成,其中不能以数字开头。美元符可以使用但是不推荐使用,应当避免使用。
解析:AB:java程序编译过后是*.class文件,这个文件是字节码文件(byte code)
C. java程序编译使用javac命令,java程序的解释和运行是java命令,java命令本质是启动JVM运行java程序(解释一句,执行一句)
10.3
解析:大类型转为小类型会发生精度丢失问题
A. 10是int类型字面量,int小于float,不丢失
B. 8846.0是double类型字面量,强制转换为int类型,有精度丢失
C. byte小于int类型字面量,因此自动提升,不丢失
D. 100是int类型,int小于double,不丢失
解析:short是2byte类型,上限是2^15-1能够存储下128,因此变量a的值为128。
short存储128: 0000 0000 1000 0000
byte存储128:1000 0000.最高位变为符号位是负数,则为补码,补码为-0的真值为-128(人为规定:原码为-0的真值为数据类型范围之内的最小值即为-128)
解析:
A. 正确的,boolean不能跟其他数据类型转换或者提升
B. 130 > 127不在byte的表示范围内,因此赋值给byte类型的时候会报错。3.5是double类型字面量,赋值给小于double的float类型需要强制类型转换
C. a是int类型,b是byte类型,a大于b,因此赋值给b的时候需要强制类型转换才能行。而此处未强制类型转换,因此报错
10.14
解析:
知识点1:自增运算符分为前置++和后置++
前置:先计算,再取值(++在前就是先加)
后置:先取值,再计算 (++在后就是后加)
知识点2:x是double类型,y是int类型,两个进行除法运算发生类型提升,提升为double类型,因此结果为0.4
增量运算符:java中不存在无符号左移,因此没有<<<=
补充的几个增量运算符:
<<=: a <<= 1 等价于a = a<<1
>>>=: a >>>= 1 等价于a = a>>>1(注意:>>>是无符号右移)
>>= : a >>= 1 等价于a = a>>1
二. switch分支结构
1. 语法:
2. 执行过程:
A. 先计算switch表达式的值
B. 和内部的多个case语句进行匹配,一旦发现匹配的值,则进入该分支,从该分支开始依次向下执行,知道遇到break语句或者执行到最后
C. 当表达式的值没有任何case语句与之匹配,执行default语句
3. switch实例(case情况为周一到周天)
4. 上述实例变种
注意1:switch的表达式不支持布尔表达式形式,只支持一个变量。因此switch分支能实现的if...else分支一定能实现,反之不一定
注意2:善用break语句和switch制造多重选择或者单路线选择
注意3:这里的seer的错误打印只是改变了打印的字的颜色而已
三. 循环结构
1. while循环
A. 应用场景:大部分都是不知道具体的循环次数,但是知道循环终止条件,使用while循环
B. 语法规则:
while(循环满足的条件-布尔表达式){
//循环语句
}
C. 执行:当布尔表达式为true,就执行循环体语句,否则结束循环
D. while循环实例
a. 打印1-10的数字
b. 计算1-100的数字和
c. 计算5!
d. 计算1!+2!+3!+4!+5!
注意1:循环嵌套使得代码的复杂度上升,可以使用函数来使得逻辑更加清晰(后面讲)
注意2:要注意循环终止的条件,不要忘记更新循环终止的条件进而造成死循环。错误实例如下
注意3:while循环的一个坑
2. 循环中的break和continue
A. break: 跳出当前循环,执行这个循环之后的代码
例子:找到100-200中第一个三的倍数
B. continue: 结束本轮循环,进入下一轮循环(跳到一下轮的条件判断然后往后执行)
例子:找到100-200之间所有3的倍数
注意:break和continue只针对一个循环。也就是break只能跳出一个当前循环。continue也只能针对一个循环。如果要跳出多个循环,则使用标签或者函数的return语句(用处比较少)
3. for循环
A. 语法:
for(表达式1;表达式2;表达式3){
//循环体代码4
}
表达式1:用于初始化循环体变量
表达式2:循环条件,满足条件,进入循环体
表达式3:循环变量的更新条件(为了跳出循环)
B. 执行顺序:1 2 4 3-> 2 4 3->2 4 3->当2为false时候,循环结束
C. 应用场景:一般来说打印次数很清晰的时候用for循环
D. for循环实例
a. 打印1-10的数字
注意:表达式1,2,3都可以不在for循环的圆括号内写,可以以其他方式写(下面是实例以打印数字1-10的代码为例)
注意:看一个变量生命周期以大括号为标准。如上图中的变量i如果写在for循环的括号内,则随着循环的结束而销毁,如果变量i写在main之下,for循环之外,则该变量i在main运行结束后被销毁
b. 计算1-100的和
注意:for循环的快速生成快捷键fori
c. 计算5!
d. 计算1!+2!+3!+4!+5!
补充知识:break和continue都只是针对当前一层循环,若多层循环时,一般搭配方法return语句或者使用标签(应用不太多)
函数的return语句
标签方法:
反例如下
4. do while循环
四. 输入输出
1. java中的输出
A. 标准输出: System.out.println();
(传入任何数值):打印之后默认换行
(不传入任何数值):直接换行
B. System.out.print(传入任何数值);
打印之后不换行
注意:必须传入数值,如果不传入数值则报错
C. 格式化输出:System.out.printf();
格式化表格:4_2板书中
注意:快捷键为souf
2. 输入
A. 系统输入:从键盘中读取内容(读取一个数值)
使用Scanner类
从键盘读取字符串,正数,浮点数
B. 多次读取(搭配while循环)
例子:从键盘读取N个数值,求平均值
C. java中获取一个随机数
最后
以上就是机智夕阳为你收集整理的JAVA基础学习——Day4(switch分支和循环结构以及输入输出)一. Day3复习回顾 二. switch分支结构三. 循环结构 四. 输入输出的全部内容,希望文章能够帮你解决JAVA基础学习——Day4(switch分支和循环结构以及输入输出)一. Day3复习回顾 二. switch分支结构三. 循环结构 四. 输入输出所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复