[Java教程]7.条件判断之Switch与循环语句

Java教程专栏:https://blog.csdn.net/qq_41806966/category_9929686.html

上篇学了 条件判断 if...else.

在Java中,还有一种条件判断,就是 swtich(切换) 语句


目录

Switch

Switch的语法

break 关键字

Switch 练习(自行练习)

循环语句

Continue 关键字

 循环之 While 循环

循环之 do...while

循环之 For 循环

练习巩固(较难,但很有趣)

下一篇将会公布此游戏代码.


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金币,游戏胜利.

下一篇将会公布此游戏代码.

猜你喜欢

转载自blog.csdn.net/qq_41806966/article/details/105915782