条件语句 if
if (condition) {statement;} else if {statemnt;} else if {statement;} ... else {statement;}
1、这里的{}可加可不加,内容多的时候最好加一下,让代码更清晰。
2、else if、else与其他编程语言一样不是必须要的,可省略。
3、碰到某些情况需要跳出并结束循环,可以用break;。
4、碰到某些情况需要跳出本次循环但仍需继续后续循环,可以用continue;。
if(yourSales >= 2*target) { performance = "Excellent"; bonus = 1000; } else if (yourSales >= 1.5*target) { performance = "Fine"; bonus = 500; } else if (yourSales >= taget) { performance = "Satisfactory"; bonus = 100; } else { System.out.println("You're fired.") }
while循环
- while (condition) {statement;} ——如果condition始终为ture,则一直执行statement,直至condition为false
- do {statement;} while (condition) ——无论condition是否为true,都会先执行一次statement,后续是否执行看condition的值
1、同上,这里的{}可加可不加,为了代码更清晰,最好加上。
2、碰到某些情况需要跳出并结束循环,可以用break;。
3、碰到某些情况需要跳出本次循环但仍需继续后续循环,可以用continue;。
for循环
for (计数器初始化;计数器检测;计数器更新)
statement;
for (int i=1;i<=10;i++) { ... } for (int i=10;i>=5;i--) { ... }
for each循环
这个需要先了解数组的概念。
switch语句
什么叫直通?
我看的是中文翻译版的书,书里把case后面带冒号的形式叫做直通,英文是fall-through,我感觉非常晦涩难懂。查了以后的意思是什么呢?我们知道switch有多个case分支,传统的java写法是case后面加冒号,这种形式有个特点是,如果不在当前分支最后加break;,在分支执行完后不会结束,而是会继续执行下面的分支,直至执行完switch语句或者碰到一个break;才结束。所以命名为直通,像后面出的case->这种形式是不需要加上break;来跳出执行的。直通的话也是有它的应用场景在的,比如我想减少代码重复,不想重复写,那么就可以用case:的方式,把需要的代码都放到switch语句里面。
| 有直通行为 | 无直通行为 |
|
switch (choice) { case 标签名: statement; break; case 标签名: statement; break; ... default: statement; break; } |
switch (choice) { case 标签名 -> statement; case 标签名 -> statement; ... default -> statement; } |
|
1、每个case以冒号结束 2、执行case分支时如果没有写break;,那么会继续执行后面的分支,直至switch语句执行完毕或遇到一个break; |
1、每个case以->结束 2、执行case分支时,无需加上break;,执行完当前分支就会自动结束switch语句 |
1、case标签可以是:
①类型为char、byte、short、int的常量表达式
②枚举常量
③字符串字面量
④多个字符串,用逗号分隔
2、switch语句如果没有找到匹配的case标签,则执行default语句
int num = 2; switch (num) { case 1: System.out.println("是一"); break; case 2: System.out.println("是二"); break; default: System.out.println("其他数字"); }
SWITCH表达式
switch语句和表达式的区别
switch语句只是执行case下的一些语句,switch表达式需要分支有返回值,因为要用于赋值或者其他。
yield关键字和break关键字的区别
两者均能终止执行,区别在于yield会生成一个值,break不会。
public class TestClass { public static void main(String[] args) { String seasonName = "Summer"; int numLetters = switch(seasonName) { case "Spring" -> { System.out.println("spring time!"); yield 1; } case "Summer" -> { System.out.println("summer time!"); yield 2; } case "Fall","Winter" -> 3; default -> -1; }; System.out.printf("\nnumLetters = %d",numLetters); } }

浙公网安备 33010602011771号