什么是流程控制?
流程控制用来控制程序中各语句的执行顺序。
流程图
逐步解决指定问题的步骤和方法的一种图形化表示方法
if分支结构
if选择结构是根据条件判断结果选择不同的处理。
//结果必须是布尔值
if(条件){
//代码块
//条件语句的结果为true的时候能走到这,否则会跳过
}
使用复杂条件的if选择结构
使用if - else选择结构
if - else 结构:多重判断(对于多个区间判断优化)
从上到下执行 , 只要有一个对, 就结束执行。
if(条件){
//代码块1
}else{
//代码块2
}
注意点:
只有一条语句时,建议不省略{ }
如果省略if结构的大括号,默认if结构的下一行是if的范围,有且只有那一行。
什么是多重if选择结构?
if(成绩 >= 80){
//代码块1
}else if(成绩 >=60){
//代码块2
}else{
//代码块3
}
为什么使用多重if选择结构?
- 单个if选择结构无法完成
- 多个if选择结构麻烦且效率低
- 将成绩分成几个连续区间判断
多重if选择结构中各个条件的顺序可以任意排列吗?
使用多重if选择语句处理问题时需要注意顺序
嵌套if选择结构
if(条件1){
if(条件2){
代码块1
}else{
代码块2
}
}else{
代码块3
}
switch选择结构:
缺点:结构复杂,啰嗦
特点:条件为等值判断
switch(表达式){
case 常量1:
语句;
break;
case 常量2;
语句;
break;
...
default:
语句;
}
注意点:
- 必须是同类型
- break 表示中止
- switch(表达式),表达式必须是 int、short、byte、char、枚举类型、String。
- if可以表示范围 switch 只能做等值判断
常见错误:
1.忘加 break,可能会导致接下来的全部执行
2.case 后的常量值不能相同
3.default块顺序可以变动,但要注意其执行顺序。
ps:通常,default块放在末尾,也可以省略。
default 可以放在第一位但是要加break。
switch 与多重 if
相同点:都是用来处理多分支条件的结构
不同点:
switch选择结构:
只能处理等值条件判断的情况
多重if选择结构:
没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况
总结:
if选择结构,包括以下形式:
基本if选择结构:可以处理单一或组合条件的情况
if-else选择结构:可以处理简单的条件分支情况
多重if选择结构:可以处理分段的条件分支情况
嵌套if选择结构:可以处理复杂的条件分支情况
switch选择结构:
多重分支并且条件判断是等值判断的情况
题外话:
程序调试:
为编写程序过程中有时出现错误,但不好发现和定位错误,于是就要进行调
试,或者当程序结构越来越复杂时,需要专门的技术来发现和定位错误,就
要使用“程序调试”。
程序调试就是使用debug方式。
debug 方式:
1.在代码左侧双击打断点
2.用debug的方式运行代码
3.单步执行,观察变量和程序运行的步骤
(step over 一步一步运行)
debug-debug Configurations-红色的x => 删除以前的debug过的程序。
产生随机数(0~9)的方法:
int random = (int)(Math.random()*10);
注意点:
String str = null;
//System.out.println(str.equals("3"));//会报错 空指针异常
System.out.println("3".equals(str));
当String类型的变量值是空值时,如进行比对,可能会出现空值。
if语句不能定义在类里面,要定义在方法或main方法里。
----2021.07.24