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才能继续行动,但是拥有复活甲的玩家可以拥有一次复活的机会,上述代码就是模拟这个场景所写的。输出结果如下:

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();}
}

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

增强for循环

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

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

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...elseSystem.out.println(hero.getName() + "没蓝了,用红硬拼。");} else {Boolean rise = true;// 嵌套if...elseif (rise) {System.out.println(hero.getName() + "没血没蓝牺牲,但是拥有复活甲,再次满状态复活。");} else {System.out.println(hero.getName() + "没血没蓝牺牲");}}}
}

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


有兴趣的小伙伴可以把变量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("开始互喷了,默认行为,站着发呆。");}}}
}

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


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


自学不易,点赞鼓励。

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

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

  1. python的分支语句中if和else必须同时出现_Python条件控制分支语句if…else…

    Python条件控制分支语句if-else- #例1:if-else-语句: #注意:if-else-可以嵌套 n=16 if n<13: #要有冒号 print n #注意空格 else: p ...

  2. shell脚本详解(二)——条件测试、if语句和case分支语句

    shell脚本详解(二)--条件测试.if语句和case分支语句 一.条件测试 1.test命令 2.文件测试 3.整数值比较 4.字符串比较 5.逻辑测试 二.if条件语句 1.单分支 2.双分支 ...

  3. 前端:JS/19/特殊运算符,运算符优先级,if条件判断语句,switch分支语句,while循环语句,for循环语句,break和continue循环控制语句,实例:九九乘法表

    特殊运算符 new运算符:创建一个对象.如:var today=new Date(); delete运算符:删除数组的元素,或者对象的属性: typeof运算符:一元运算符,主要功能:判断变量的类型的 ...

  4. python分支语句_Python中分支语句与循环语句实例详解

    前言 本篇博文介绍一下Python中的if条件语句.while循环语句.for in循环语句以及break和continue控制关键字. 分支的基本语法 if 条件表达式: 语句1 语句2 语句3 . ...

  5. java基础知识点(5)——分支语句if-switch

    分支语句if-switch 前言 一.分支结构----流程控制 1.分支结构的概述 1.1 If语句的第一种格式 1.1.1 格式 1.1.2. 说明 1.1.3.执行流程 1.1.4.代码示例 1. ...

  6. C++ Primer Plus(嵌入式公开课)---第5,6章 循环和关系表达式 分支语句和逻辑运算符

    20220222 C++ Primer Plus - 第五.六章 附录: 1.ASCII码字符对照表 2.C++ 运算符优先级 第1-3章 第4章 复合类型 第5章 循环和关系表达式 5.1 for循 ...

  7. python多分支语句实例_Python分支语句与循环语句应用实例分析

    Python分支语句与循环语句应用实例分析 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  Python分支语句与循环语句应用实例分析.txt ] (友情提示:右 ...

  8. Shell编程之条件语句(if语句,case分支语句)

    Shell编程之条件语句 一.条件测试操作 1.test命令 2.文件测试 3.整数值比较 4.字符串比较 5.逻辑测试 二.if语句 单分支结构 双分支结构 多分支结构 三.case分支语句 一.条 ...

  9. Python基础——PyCharm版本——第四章、基础语法-分支语句(条件判断if语句)

  10. 【JavaSE04】Java中循环语句for,while,do···while

    Java的循环语句 引入: 生活中有循环,程序的世界也有循环. 思考:生活中有哪些循环的事情? 总结:什么是循环? 重复做类似的事情,而且有终止条件,如果没有终止条件会是怎样? 类似这样的情况,Jav ...

最新文章

  1. ideal如何创建dynamic web project
  2. linux for循环
  3. 深度学习-机器学习(神经网络 1)
  4. js通过身份证获取年龄
  5. 《白鹿原》金句摘抄(六)
  6. 前端学习(1709):前端系列javascript之uniapp
  7. IIS7配置PHP 报错 对找不到的文件启用文件监视
  8. [论文]Clustering-Based Ensembles as an Alternative to Stacking
  9. 该怎么输出log?!
  10. 重构代码 —— 函数即变量(Replace temp with Query)
  11. 六、openstack安装之Horizon篇
  12. Visio2010安装和卸载
  13. 打开英伟达控制面板超时打不开解决办法
  14. SpringCloud实战微服务之——Ribbon详解
  15. 实验三 类与对象(zxt)
  16. 华为云鲲鹏云服务器系列的规格,#化鲲为鹏,我有话说#使用华为云鲲鹏弹性云服务器部署文字识别Tesseract...
  17. Xcode8使用出现bundleid: com.xxx.xxx, enable_level: 0, persist_level: 0, propagate_with_acti
  18. 我想建立网站,网站搭建需要哪些大体步骤?
  19. 聚划算影响淘宝搜索权重?客服:未接到通知
  20. 教育培训课程报名管理系统(学生、教师、管理员)+SSM框架+mysql+tomcat+Maven项目(毕设学习)

热门文章

  1. 软件实施工程师需要掌握的技能
  2. 透过上网管理 看看上班时间员工都在干啥?
  3. xcode升级iOS 16问题与解决方案汇总
  4. bugkuCTF---flag在index里
  5. 年终总结:2021年最有用的数据清洗 Python 库
  6. (附源码)计算机毕业设计SSM加油站管理信息系统
  7. C语言小案例_小程序学习(三)
  8. 简易串口助手通信(齐全) 可实现ASII和十六进制发送指令 并显示
  9. LC-3指令集 字符的输入与输出
  10. Utgard连接OPC Server常见故障码及解决方案