一、条件判断

1、if-else

示例:

  1. /**
  2. * 第1种,1个分支
  3. */
  4. public void case1() {
  5.  
  6. int age = 15;
  7. if (age > 18) {
  8. System.out.println("成年人");
  9. }
  10. }
  11.  
  12. /**
  13. * 第2种,2个分支
  14. */
  15. public void case2() {
  16.  
  17. int age = 15;
  18. if (age > 18) {
  19. System.out.println("成年人");
  20. } else {
  21. System.out.println("未成年人");
  22. }
  23. }
  24.  
  25. /**
  26. * 第3种,多个分支
  27. */
  28. public void case3() {
  29. int num = 0;
  30. if (num > 10) {
  31. System.out.println("");
  32. } else if (num > 20) {
  33. System.out.println("");
  34. } else if (num > 30) {
  35. System.out.println("");
  36. } else if (num > 40) {
  37. System.out.println("");
  38. } else if (num > 50) {
  39. System.out.println("");
  40. } else {
  41. System.out.println("");
  42. }
  43. }

2、switch-case

示例:

  1. /**
  2. * 字符串数据作为表达式
  3. *
  4. * break关键字
  5. *
  6. * default关键字
  7. *
  8. * 可以作为switch表达式的数据类型: byte,short,char,int,枚举,String
  9. */
  10. public void case1() {
  11. String str = "你好";
  12. switch (str) {
  13. case "你好":
  14. System.out.println("跟我打招呼");
  15. break;
  16. case "尼玛":
  17. System.out.println("这是要干架");
  18. break;
  19. case "嘿嘿嘿":
  20. System.out.println("这可能是要搞基");
  21. break;
  22. default:
  23. System.out.println("不懂你要说啥");
  24. }
  25. }
  26.  
  27. /**
  28. * 多个常量落进相同的逻辑处理
  29. */
  30. public void case2() {
  31. // type=1, 支付宝,
  32. // type=2, 微信
  33. // type=3, 京东
  34. // type=4, 易宝
  35. int type = 4;
  36. switch (type) {
  37. case 1:
  38. case 2:
  39. case 3:
  40. System.out.println("互联网支付");
  41. break;
  42. case 4:
  43. case 5:
  44. case 6:
  45. case 7:
  46. System.out.println("非互联网支付");
  47. break;
  48. default:
  49. System.err.println("出错啦, 不支持的类型");
  50. }
  51. }

总结:

相同点

  • 都是一种逻辑分支的处理,语义: 要么你,要么我,要么他
  • 都有兜底的语句,if是else, switch是default

不同点

  • if-else 是一个范围的判断,如 小于10,大于100
  • switch-case 是精确的等值分支

注意

  • 使用switch的都可以使用if-else改写,反之不成立
  • 逻辑要兜住, else, default很重要

二、循环控制

1、for循环

示例:

  1. /**
  2. * @author Luolei
  3. * @date 2019/8/24
  4. */
  5. public class Test1 {
  6.  
  7. /**
  8. * 最基本的循环,打印1到100内的偶数
  9. */
  10. public void case1() {
  11. for (int i = 2; i <= 100; i += 2) {
  12. System.out.println(i);
  13. }
  14. }
  15.  
  16. /**
  17. * 死循环
  18. */
  19. public void case2() {
  20. for (; ; ) {
  21. System.out.println("哈哈哈");
  22. }
  23. }
  24.  
  25. /**
  26. * continue
  27. *
  28. * break
  29. */
  30. public void case3() {
  31. for (int i = 0; i <= 10; i++) {
  32. System.out.println("yes");
  33.  
  34. if (i % 2 == 0) {
  35. // 结束当前循环,进入下一次循环
  36. continue;
  37. }
  38. if (i == 9) {
  39. // 跳出循环
  40. break;
  41. }
  42. System.out.println(i);
  43. }
  44. }
  45.  
  46. /**
  47. * 循环一个数组或list
  48. */
  49. public void case4() {
  50. int[] arr = {1,2,3,4};
  51. for (int i : arr) {
  52. System.out.println(i);
  53. }
  54. }

2、while循环

示例:

  1. /**
  2. * 最基本的循环,打印1到10
  3. */
  4. public void case1() {
  5. // init
  6. int i = 1;
  7.  
  8. // test
  9. while (i <= 10) {
  10.  
  11. // body
  12. System.out.println(i);
  13.  
  14. // update
  15. i++;
  16. }
  17. }
  18.  
  19. /**
  20. * 死循环,条件没有结束的时候
  21. */
  22. public void case2() {
  23.  
  24. while (true) {
  25. System.out.println("死循环");
  26. }
  27. }
  28.  
  29. /**
  30. * continue && break
  31. */
  32. public void case3() {
  33.  
  34. int i = 1;
  35. while (i <= 100) {
  36.  
  37. if (i % 2 == 0) {
  38. i++;
  39. // 结束当前循环,进入下一次循环
  40. continue;
  41. }
  42. if (i == 9) {
  43. // 跳出循环
  44. break;
  45. }
  46. System.out.println(i);
  47. i++;
  48. }
  49. }

3、do-while循环

示例:

  1. /**
  2. * 最基本的循环,打印1到10
  3. */
  4. public void case1() {
  5. // init
  6. int num = 0;
  7.  
  8. do {
  9. // body
  10. System.out.println("进入循环体");
  11.  
  12. // update
  13. num++;
  14. } while (num < 10);
  15. }
  16.  
  17. /**
  18. * 死循环
  19. */
  20. public void case2() {
  21. // init
  22. int num = 1;
  23.  
  24. do {
  25. // body
  26. System.out.println("进入循环体");
  27.  
  28. // update
  29. } while (num == 1);
  30. }
  31.  
  32. /**
  33. * continue && break
  34. */
  35. public void case3() {
  36.  
  37. // init
  38. int num = 1;
  39.  
  40. // body
  41. do {
  42. System.out.println("进入循环体");
  43. if (num % 3 == 0 ) {
  44. num++;
  45. continue;
  46. }
  47. if (num % 5 == 0 ) {
  48. break;
  49. }
  50. num++;
  51. // update
  52. } while (num <= 100);
  53. }

总结:

组成

  • 循环控制均可抽象成四部分

    • init        初始化
    • test       条件测试
    • body     循环体代码
    • update  迭代变更

注意

  • 一定要注意循环的退出条件,不要造成死循环
  • 即使不死循环,也要注意循环的次数
  • do-while至少需要执行一次然后再判断条件

Java学习之==>条件判断、循环控制的更多相关文章

  1. Java学习-030-JSON 之四 -- 判断 JSONObject 是否包含键值对

    前文对获取 JSON 数据封装方法,使之可通过类似于 cssSelector 的方法获取 JSON 数据,使获取数据变得简单.敬请参阅:模仿 cssSelector 封装读取 JSON 数据方法. 在 ...

  2. Shell学习(六)——条件判断总结

    Shell学习(六)--条件判断总结 [1]https://www.cnblogs.com/zhw-626/p/8528001.html [2]https://www.cnblogs.com/yizh ...

  3. Shell学习笔记 - 条件判断式

    1. 判断格式 1) test 参数 文件 例: test -e /root/install.log 2) [ 参数 文件 ]  -- 推荐使用 例: [ -e /root/install.log ] ...

  4. python学习第六天 条件判断和循环

    总归来讲,学过C语言的同学,对条件判断和循环并不陌生.这次随笔只是普及一下python的条件判断和循环对应的语法而已. 条件判断: 不多说,直接贴代码: age = 23 if age >= 6 ...

  5. Python学习之条件判断和循环

    #coding= utf-8 # 条件判断和循环 # 如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也不做 age1 = 20 if age1 >= 18: prin ...

  6. python学习_条件判断语句_if

    #条件判断语句(if)#语法:if条件表达式:语句# 代码块#执行流程:if语句在执行时,会先对条件表达式进行求值判断#如果为True,则执行if后面的语句#如果为False,则不执行#默认情况下,i ...

  7. Python学习笔记—条件判断和循环

    条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: age = 20 if age >= ...

  8. Ruby学习中(条件判断, 循环, 异常处理)

    一. 条件判断 详情参看:https://www.runoob.com/ruby/ruby-decision.html 1.详情实例(看看就中了) #---------------# # LOL场均人 ...

  9. Python学习之==>条件判断

    1.单条件判断 # 接收输入的值,使用input函数,用input接收输入的值都是string类型的 age = input('请输入你的年龄:') age = int(age) # 类型转换,转换成 ...

随机推荐

  1. docker_Ubuntu16.04下安装cuda

    经过一上午的研究,终于配置好docker环境,并成功安装cuda9.0. (1)下载安装文件.首先去英伟达官网下载cuda安装包:https://developer.nvidia.com/cuda-t ...

  2. Lucky HDU - 5213 (莫队,容斥)

    WLD is always very lucky.His secret is a lucky number . is a fixed odd number. Now he meets a strang ...

  3. server version for the right syntax to use near 'USING BTREE 数据库文件版本不合导致的错误

    MySQL 返回:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MyS ...

  4. PMBOK :美国的项目管理知识体系

    PMBOK 是Project Management Body Of Knowledge的缩写, 指项目管理知识体系的意思,具体是美国项目管理协会(PMI)对项目管理所需的知识.技能和工具进行的概括性描 ...

  5. DevExpress ASP.NET v19.1版本亮点:发布全新的Gantt控件

    行业领先的.NET界面控件DevExpress 发布了v19.1版本,本文将以系列文章的方式为大家介绍DevExpress ASP.NET Controls v19.1中新增的一些控件及增强的控件功能 ...

  6. grunt-contrib-uglify js压缩

    grunt-contrib-uglify:压缩以及合并JavaScript文件. 插件安装:npm install grunt-contrib-uglify --save-dev 参数: banner ...

  7. css,scss解决样式:表格的重叠边框

    初始效果: 解决方法: 给带有边框的元素设置如下样式margin:0 0 -borderwidth -borderwidth 这里的borderwidth即为边框的宽度,按照上图所示,则添加样式 ma ...

  8. 在angular中使用ng-repeat时数组中有重复元素,要用item in items track by $index

    在angular中使用ng-repeat时数组中有重复元素,要用item in items track by $index,不然会报错 <div class="" ng-in ...

  9. k8s的一键分发秘钥 需要yum install expect

    #下面的密码你改改就行了 我的机器也用的123456 ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa for i in k8s-1 k8s ...

  10. C# 文件排序

    一.C#文件排序 1.按名称顺序排列 /// <summary> /// C#按文件名排序(顺序) /// </summary> /// <param name=&quo ...