Java教程专栏:https://blog.csdn.net/qq_41806966/category_9929686.html
上篇学了 条件判断 if...else.
在Java中,还有一种条件判断,就是 swtich(切换) 语句
目录
Switch
switch也是Java里的关键字,switch和 if 差别并不大,例: 判断变量 A 等于指定值 比如 10,20,30的情况
使用 if, 如果 A == 10 执行... 否则如果 A == 20 执行...否则如果A == 30 执行...
使用switch就没有否则的概念了,可以理解为直接执行, A == 10 执行... == 20 执行 == 30执行.
Switch的语法
switch (要判断的值) {
case 条件1:
条件成立执行...
case 条件2:
条件成立执行...
case 条件3:
条件成立执行...
}
switch语句会在一个条件成立后,执行此条件后面的所有条件,我们运行以下代码看下结果
int a = 0;
switch (a) {
case 0:
System.out.println("switch中的 0执行了");
case 1:
System.out.println("switch中的 1执行了");
case 2:
System.out.println("switch中的 2执行了");
}
运行结果
switch中的 0执行了
switch中的 1执行了
switch中的 2执行了
因为a == 0,所以执行了 此条件 和 条件后的所有语句.
我们把 a改为 1 则只会执行 1 和 2
运行结果
switch中的 1执行了
switch中的 2执行了
有时候,我们并不希望在一个条件成立后执行此条件后面的所有条件,这时候就用到了 break 关键字
break 关键字
break(跳出),当代码执行到 break 可以跳出指定语句(不执行此语句后面的代码)
在 switch 中就是这样的
break在Java中只能在 switch,循环中出现.
通常在需要的判断 超过5个以上的时候使用 switch(比 if 更快)
Switch 练习(自行练习)
通过输入一个 int 类型的数字,使用 switch 判断(注意case顺序和break的使用 结果与下面条件结果一致则做对了)
- 数字等于 0 和 4,只输出 鸭蛋 (case 0: case 4:)
- 数字等于1 输出,鸡蛋(case 1)
- 数字小于2 输出,荷包蛋
- 数字等于3 输出 恐龙蛋 荷包蛋
循环语句
生活中处处有循环,比如你每天都会要吃饭,睡觉...
在代码中,循环就是指在 循环体内的代码 执行指定次数
执行无数次的循环(一直执行) 则称之为 死循环
画一张图表示就是
Continue 关键字
在之前学习了 break 关键字,现在来学习以下新的关键字,continue(继续的意思).
在生活中,我们不会一直完全一模一样的循环,比如吃饭的时候,吃到一半发现饭是假的...这个时候肯定不会继续吃.
在程序的世界里也是如此,我们有时候会需要在满足某个条件的时候就不执行下面的代码了,这个时候就需要用到 continue.
区分 continue 和 break(continue用于结束这一次循环,继续进行下一次,break是直接跳出整个循环)
举个栗子:
以比赛来讲,比赛的时候你被发现作弊了,这个时候裁判让你重新比赛(使用continue),如果重新比赛你还继续作弊,并且又被发现,这时裁判直接把你踢出赛场(break)
continue的图如下所示
循环之 While 循环
while 也是Java中的关键字,是语句(只能出现在方法内)
语法: 与 if 类似.
while (循环条件) {
循环执行的代码
}
当 循环条件 为true 并且循环里没有跳出,改变循环条件,则为死循环
例如下面这个代码就是一个经典的死循环
while (true) {
System.out.println("hello");
}
启动后程序会一直运行输出 hello,直到你把cmd窗口关闭(或者启动的程序)
我们同样可以在 while 里使用 break 关键字来跳出循环,比如下面的代码结果为 hello
while (true) {
System.out.println("hello");
break;
}
循环之 do...while
do...while 与 while的不同点在于, while 是先判断,在执行,do while是先执行,在判断
语法:
do { 执行的代码 } while (循环执行的条件);
通过以下例子就可以知道 while 与 do...while的区别.
public class Test { public static void main(String[] args) { int a = 0; //a == 0所以这里不会被执行 while (a == 1) { System.out.println("while执行了"); } //这里是先执行 然后在判断,所以会执行一次 do { System.out.println("do while 执行了"); } while (a == 1); } }
最终输出结果为: do while 执行了
循环之 For 循环
for 循环与 while 循环不同的是语法.
语法:
for (初始化一些变量;循环条件;每一次循环完成都会执行的语句) {
循环条件成立执行的语句;
}
我们经常使用的 for 循环的经典代码
//会执行十次循环
for (int i = 0;i < 10;i++) {
System.out.println(i);
}
至于为什么我们值从 0 开始 而不是1,是因为大家都习惯这么做...
根据语法,我们可以扩展一些 for 循环的写法(一般很多新手都不注意的)
//循环十次输出可以简写成如此 当一个语句中只有一个语句时,可以省略花括号
//在第一个(初始化参数) 和 第三个条件(每一次循环体执行完后执行) 可以多个,用逗号隔开
for (int i = 0;i < 10;i++,System.out.println(i));
练习巩固(较难,但很有趣)
使用循环制作一个 购买商品的游戏(赚钱通关游戏),游戏大致内容如下.
游戏描述: 主角需要在一个什么动作都会消耗健康的世界里赚取 1000 金币来购买通关.
游戏细节:
游戏开始,我们的主角在家中.拥有 100 的健康值(健康值为0则游戏结束).
所有的操作都会消耗10点健康值
睡觉可以恢复 20点健康值(实际10健康),吃饭恢复30点健康值(实际20健康),消耗50金币.
有三个场景:
- 家 :可以选择出门(默认消耗10健康)和睡觉(恢复20健康(因为每执行一个操作都会消耗10,所以实际恢复10健康))
- 出门: 去往大街
- 大街: 拥有商店,打工,和吃饭选项
- 商店: 进入商店场景
- 打工: 消耗20健康(实际消耗30),来赚取100金币.
- 吃饭: 消耗50金币,恢复30健康(实际恢复20)
- 商店: 可以购买商品
- 健康药水: 200金币,将健康值加满
- 通关药水: 1000金币,游戏胜利.