流程控制语句
三大类:
1)顺序结构语句
2)选择结构语句
3)循环结构语句
跳转控制语句
break;
continue;
return:
顺序结构语句
main方法:需要被jvm调用
进入main方法
代码由上而下依次进行加载
选择结构语句(if/switch)
选择结构语句之if:
有三种格式:
1)if(表达式){语句;} //有分号的地方不能有左大括号 应用场景:对一个条件进行判断,成立则进来执行,不成立则不执行
2)if(表达式){语句1;}else{语句2;} //针对两种情况进行判断
3)if(表达式1){语句1;}else if(表达式2){语句2;}....else {语句n;}
注意事项:if else 既可以对数据直接操作 也可以操作语句 而三元运算符只能操作数据 相对来来说前者的范围更大一些
//测试程序
测试:非法数据
正确数据
边界数据
导包的快捷键:alt+enter
面试题:switch后面的表达式可以是什么样的数据类型?
最基本的:byte short int char
JDK5以后可以是枚举类型
JDK7以后可以是string类型
在Java中 case后面只能跟常量
switch语句中的注意事项:
1)case语句的后面只能是常量,不能是变量.
2)关于break的意思:结束中断
switch语句的结束条件
1)遇见break结束!
2)默认执行到末尾!
3)default 语句可以放在switch中的任意位置(即不放在语句末尾);必须要跟上break,如果在语句末尾,则可以省略
4)如果default不在语句末尾,则不能省略break,因为省略会造成case穿透
面试题
int x=3;
int y=4;
switch (x){
default:
y++;
case 3:
y++; //5
case 5:
y++; //6
}
问y的值是多少?(注意有case匹配则不会执行default!)
键盘录入数据,模拟一个单项选择题
快捷键:
Ctrl +d---复制
ctrl+x-----删除行
ctrl+shift+/:添加多行注释 取消多行注释就是再按一次
Ctrl+/添加单行注释 取消就是再按一次
改类名 改包名:shift+f6
键盘录入是可以录入字符串类型的(无法录入char类型)
public String nextLine():正式用法System.out.prinyln(请您输入字符串数据);
String str=sc.nextLine();
"100" //并不是整数,而是数字字符串
关于键盘录入中的细节
1)分别录入两个int类型,输出
2)分别录入两个String 类型(字符串类型),输出
3)先录入String类型,再录入int类型
4)先录入int类型,在录入String类型,会把String类型数据丢掉(原因是先录入int---按回车符号-----把回车看做了字符串 ---直接录入)
case穿透也可以利用达到某些功能....
!!!在src 上创建类名时,前面加上包名,它会直接将包名和类名都创建好
循环语句的使用
for循环
while循环
do while 循环
for循环的格式
for(初始化语句;条件判断语句;步长语句){
循环体语句;
}
流程:先执行初始化语句赋值,接着进行判断,在执行步长语句,在进行判断,接着执行步长,循环直到条件不成立结束循环.
统计思想
需求:统计所有的水仙花数有多少个?
1)定义一个统计变量:从0开始
每循环一次,就执行一次统计即++即可
while循环的格式
基本格式
while(条件表达式){
循环体语句;
步长语句;
}
流程:判断条件是否成立,成立则执行循环体,在执行步长语句;直到条件不成立循环结束.
面试题:
while和for的区别
1)格式不同
2)从内存角度考虑
for循环的格式:for循环语句外面不能够访问变量的,循环结后,里面的变量会被GC(Java中的垃圾回收器)回收
while循环的扩展格式:循环结束,依然可以访问变量,在内从中占用空间
所以推荐使用for循环
3)如果知道循环次数,推荐使用for循环
在程序中出现的死循环(在循环的过程中,没有控制语句):
需求:键盘不断录入数据,玩猜数字小游戏(1~100之间)
Java中的类-----Math:针对数学运算的常用类,
for(;;){
System.out.prinyln("这是一个死循环");
}
while(true){
System.out.println("我来了"); //使用死循环进行键盘不断录入,推荐使用while死循环
}
Java.lang.Math:
内置的方法
public static double random():获取一个随机数 0.0~1.0之间且取不到1.0
double d=Math.random();
int num=(int)Math.random()*100+1; //取不到100,所以+1
break:switch 语句中;循环语句中;
do while 循环
格式
初始化语句;
do{
循环体语句;
步长语句;
}while(条件语句);
唯一的区别:循环体至少出现一次;即使条件不成立
for 循环的嵌套
for(初始化语句;条件表达式;步长语句){
for(初始化语句;条件表达式;步长语句){
循环体语句;
}
}
应用场景:
需求:
控制台输出*(4行5列)
使用for循环的嵌套,外层循环控制行数,内层循环控制列数
需求:
控制台输出*(4行5列)
第一行输出一颗*
第二行输出2颗*
第四行输出4颗*