昨日内容回顾
类型转换
隐式转换: 小转大
强制转换: 大转小 小的数据类型 变量名 = (小的数据类型)大的数据值;
大小顺序
byte < short < int < float < double
char
boolean和String不参与类型转换;
运算符
算术运算符
+ - * / % ++ --
关系运算符
> >= < <= == !=
赋值运算符
= += -= *= /= %=
特点:
- 运算符的左边必须是变量
- 扩展的赋值运算符隐含了一个强制类型转换;
逻辑运算符(短路运算符)
& 与 并且的意思
| 或 或者的意思
! 非 不的意思
^ 异或 要么的意思
&& 当左边是false的时候,会短路 遇false则false
|| 当左边是true的时候,会短路 遇true则true
三元运算符
格式:
关系表达式 ? 数据值1:数据值2;
特点:
- 三元运算符的结果必须使用;
- 在格式的数据值1和数据值2的位置不能写输出语句;
if语句
格式1
对一种情况进行判断,满足条件就执行代码,不满足条件就不执行代码;(做与不做之间做抉择)
if(条件表达式){
被控制的代码;
}
格式2
对两种情况进行判断,选择其中之一执行代码,(两种情况之间一定会选择一种)
if(条件表达式){
被控制的代码;
}else{
当条件为false的时候,就执行这里的代码;
}
格式3
对三种以上情况进行判断,选择其中之一执行代码,(多选一)
if(条件表达式1){
被控制的代码1;
}else if(条件表达式2){
被控制的代码2;
}......
else{
当所有条件都为false的时候,就执行这里的代码;
}
今日内容
switch(了解)
多个数据值选其一;
格式
switch(数据值){
case 值1:
代码1;
break;
case 值2:
代码2;
break;
....
default:
其他情况的代码;
}
注意事项
- 小括号的数据值只能是: byte,short,int,char,String,枚举;
- case后面的值不能重复
- case后面的值必须是常量;
执行顺序
- 根据小括号中的数据值与case值做匹配,哪个能匹配成功就执行对应的代码;
- 如果所有的case都匹配失败,则执行default的代码;
穿透现象
概述
当case没有写break的时候,会从匹配的case开始,一直往下执行,直到遇到break或大括号结束才会停下来;
执行特点
一直往下执行(不再匹配下面的值了),直到遇到break或大括号结束才会停下来;
循环
概述
重复性的做某个事情;(重复执行代码)
分类
for,while,dowhile
for循环的格式
for执行流程
1 2 3 4 2 3 4 2 3 4 2... 直到2变成false,循环会结束
求和练习
求偶数和
水仙花
每一行打印两个水仙花数
扩展练习
需求:缝7过案例,打印出100以内所有包含7或7的倍数的数字,要求每8个数字换一行;
while循环的格式
while循环的执行流程和for循环的执行流程是一样的!
珠峰案例
dowhile循环(了解)
格式
执行顺序
1 2 3 4 2 3 4 2 3 4 直到4变成false的时候,循环就会停止
特点
先斩后奏;
无论原始条件是真还是假,至少都会执行1次;
三种循环的区别
死循环
条件一直为true的循环就是死循环;
格式
常用的死循环是while(true){}
特点
死循环的下面不能直接写代码,否则语法报错,因为永远没有机会执行;
跳转控制语句
能够对循环的流程进行控制的关键字就是跳转控制语句;
关键字包含
break
continue
含义
标号
给循环起个名字;
可以配合break或continue在代码的任意位置,对指定名称的循环进行控制;
语法
随机数(重点)
概述
java写了一个Random类,专门用于帮我们生产一个随机数;
使用步骤
总结一个通用公式
生成任意范围的随机数:
int 合法范围的值= r.nextInt(最大值-最小值+1)+最小值;