了解掌握Java的循环语句、条件语句、分支语句(Java 从自学到就业 第3天)

Java 学习记录 第三天

由于本渣渣是前端转行Java,所以编辑器的选择就直接用 webstorm 同公司的 idea

学习目标

了解掌握Java的循环语句、条件语句、分支语句


学习内容

  • while循环
  • do…while循环
  • for循环
  • 增强for循环
  • break关键字
  • continue关键字
  • if…else语句
  • switch case语句

while循环

public class Test1 {
    public static void main(String[] args) {
        Hero hero = new Hero("后羿");
        Integer lastMp = hero.getMp();
        Integer num = 0;
        while (lastMp > 0) {
            int usedMp = 100;
            hero.unleashSkills(usedMp);
            lastMp -= usedMp;
            num++;
            System.out.println("使用第 " + num + " 次大招。");
        }
        System.out.println("————————————————————————————————");
        System.out.println("蓝不够,再见!!!");
    }
}

这里还是使用上周创建的英雄类来实例化英雄对象,来看看以上代码run之后输出了什么吧。
王者荣耀后羿英雄图片
这里要注意的是Heor类的hp、mp类变量都添加private访问修饰符,需要添加公共的get和set方法才能使用,如下所示:

public class Hero {
    /**
     * 英雄类
     */
    private String name = "";

    private static Integer hp = 1000; // 血量

    private static Integer mp = 500; // 蓝量

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public static Integer getHp() {
        return hp;
    }

    public static void setHp(Integer hp) {
        Hero.hp = hp;
    }

    public static Integer getMp() {
        return mp;
    }

    public static void setMp(Integer mp) {
        Hero.mp = mp;
    }

   ......
}

do…while循环

public class Test2 {
    public static void main(String[] args) {
        Hero hero = new Hero("后羿");
        Integer lastHp = hero.getHp();
        Integer hurt = 1500;
        lastHp -= hurt;
        System.out.println("受到" + hurt + "伤害,剩余血量:" + lastHp + (lastHp < 0 ? " 英雄死亡!!!" : " 我还活着!!!"));
        do {
            System.out.println("\n小样!!!劳资可是有复活甲的男人!!!");
            lastHp = hero.getHp();
            lastHp -= hurt;
            System.out.println("\n又受到" + hurt + "伤害,剩余血量:" + lastHp + (lastHp < 0 ? " 英雄死亡!!!" : " 我还活着!!!"));
            System.out.println("特么的又死了,辣鸡游戏。卸载!!!");
        } while (lastHp > 0);
    }
}

说明下这个语句的作用,跟while相比,do…while就算条件没有达到也会执行一次do代码块中的代码,上面是拿复活甲的效果来做个示例。大家都知道英雄的剩余血量只有大于0才能继续行动,但是拥有复活甲的玩家可以拥有一次复活的机会,上述代码就是模拟这个场景所写的。输出结果如下:
零基础Java就业

for循环

public class Test3 {
    public static void main(String[] args) {
        Hero hero = new Hero("后羿");
        Integer times = 10;
        for (int num = 0; num < times; num++) {
            hero.mobile();
            System.out.println("第 " + (num + 1) + " 次");
        }
        System.out.println("————————————————————————————");
        hero.goBack();
    }
}

这是一个简单的示例,下面是上述代码的输出结果:

Java开发高薪岗位

增强for循环

public class Test4 {
    public static void main(String[] args) {
        String[] heroName = {"后羿", "鲁班", "孙尚香", "马可波罗"};
        for (String name : heroName) {
            Hero hero = new Hero(name);
        }
    }
}

这是一个简单的示例,下面是上述代码的输出结果:

前端转行Java

break关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
break 跳出最里层的循环,并且继续执行该循环下面的语句。

break;

continue关键字

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
在 for 循环中,continue 语句使程序立即跳转到更新语句。
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

continue;

if…else语句

public class Test5 {
    public static void main(String[] args) {
        Hero hero = new Hero("后羿");
        Integer lastHp = hero.getHp();
        Integer lastMp = hero.getMp();
        if (lastMp > 0) {
            System.out.println(hero.getName() + "还有蓝,还可以浪一波。");
        } else if (lastHp > 0) {
            // 多重if...else
            System.out.println(hero.getName() + "没蓝了,用红硬拼。");
        } else {
            Boolean rise = true;
            // 嵌套if...else
            if (rise) {
                System.out.println(hero.getName() + "没血没蓝牺牲,但是拥有复活甲,再次满状态复活。");
            } else {
                System.out.println(hero.getName() + "没血没蓝牺牲");
            }
        }
    }
}

上述代码是用 if…else 模拟王者荣耀中对抗的一个过程,输出结果如下:

铭纹天下——while(true)如何退出循环
有兴趣的小伙伴可以把变量lastHp和lastMp的值自行调整下,看下输出结果会不会发生改变。

switch case语句

  • switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
  • switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
  • case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
  • 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
  • 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
  • switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。
public class Test6 {
    public static void main(String[] args) {
        Hero hero = new Hero("后羿");
        int lastMp = hero.getMp();
        String[] doings = { "attack", "mobile", "unleashSkills", "goBack", "" };
        for (String doing : doings) {
            switch (doing) {
                case "attack":
                    hero.attack();
                  break;
                case "mobile":
                    hero.mobile();
                  break;
                case "unleashSkills":
                    while (lastMp > 0) {
                        hero.unleashSkills(100);
                        lastMp -= 100;
                        System.out.println("__________________");
                    }
                    System.out.println("没蓝了,浪不动了。");
                    break;
                case "goBack":
                    Boolean isGo = false;
                    if (isGo) {
                        hero.goBack();
                    } else {
                        System.out.println("____________");
                        System.out.println("就是装逼,不回城。");
                    }
                  break;
                default:
                    // 当值为空字符串是触发默认语句
                    System.out.println("开始互喷了,默认行为,站着发呆。");
            }
        }
    }
}

以上是今天的一个综合的示例,运行结果如下:

35岁的Java开发岗该怎么继续
这一块根据前端的经验来看应该在实际开发中使用是较为多的,所以着重都过了一遍。希望这些能帮助到需要帮助的人,都是些简单的例子,实际开发中往往会比这些复杂得多。但是学习还是要循序渐进,先培养下兴趣再慢慢深入,别一开始就直接看太难了,容易丧失斗志,瞬间劝退。



自学不易,点赞鼓励。

谢谢各位看官,如果有哪里写错的还望指出来哈,共同进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Only Double J

自学不易,希望鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值