流程控制

  • 一、顺序结构(默认)
  • 二、分支结构
    • 1.if分支
    • 2.switch分支
  • 三、循环结构
    • 1.for循环
    • 2.while循环
    • 3.do-while循环
    • 4.死循环
    • 5.嵌套循环
    • 6.跳转控制语句
  • 四、案例技术:随机数Random类
    • Random的使用
    • 猜数游戏

java 提供了一些流程控制语句,来控制语句和执行语句。大致分为三类:顺序结构,分支结构,循环结构。

一、顺序结构(默认)

程序中没有其他的结构,按照代码的先后顺序,依次执行程序中的大多数代码。流程如下:
开始 =》语句A =》语句B =》语句C=》结束

package dreamcode;
public class snow1 {public static void main(String[] args) {System.out.println('A');  // ASystem.out.println('B');  // BSystem.out.println('C');  // C}
}

顺序结构就是按照代码从上到下的顺序依次执行。

二、分支结构

1.if分支

根据判定的结果(真或假)决定执行某个分支的代码。
if分支有三种格式:
格式一:

if (条件表达式){语句体;
}

eg:

package dreamcode;public class xuanze {public static void main(String[] args) {int hearBeat =70;if(hearBeat>60 || hearBeat<120){System.out.println("你的心跳数据是:"+hearBeat+",指标属于正常,"); // 你的心跳数据是:70,指标属于正常,}System.out.println("测试结束"); //测试结束}
}

格式二:

if(条件表达式){语句体1;
}else{语句体2;
}

eg:

package dreamcode;public class xuanze {public static void main(String[] args) {int money = 5999;if(money>=1314){System.out.println("您当前发送成功~~~"); // 您当前发送成功~~~}else {System.out.println("您自己都没钱,就别发了~~~");}}
}

格式三:

if(条件表达式1){语句体1;
}else if(条件表达式2){语句体2;
}else if(条件表达式3){语句体3;
}
...
else{语句体n+1;
}

eg:

package dreamcode;public class xuanze {public static void main(String[] args) {int score = 99;if(score >= 0 && score < 60){System.out.println("很遗憾你的成绩不及格!");}else if(score >= 60 && score < 90){System.out.println("恭喜你的成绩及格了!");}else if(score >= 90 && score < 100){System.out.println("恭喜你获得很优秀的成绩!"); // 恭喜你获得很优秀的成绩!}else {System.out.println("你的成绩有误");}}
}

2.switch分支

匹配条件去执行分支,适合做值匹配的分支选择,结构清晰,格式良好。
执行流程:

switch(表达式){case 值1:执行代码...;break;case 值2:执行代码...;break;...case 值n-1:执行代码...;break;default:执行代码n;
}
  • 先执行表达式的值,拿着这个值去与case后的值进行匹配。
  • 匹配那个case的值为true就执行那个case,遇到break就跳出switch分支。
  • 如果case后的值都不匹配则执行default代码。
    eg:
package xuanze;public class swjiegou {public static void main(String[] args) {String weekday = "周二";switch (weekday) {case "周一":System.out.println("埋头苦干,解决bug");break;case "周二":System.out.println("请求大牛程序员帮忙"); // 请求大牛程序员帮忙break;case "周三":System.out.println("今晚啤酒、龙虾、小烧烤");break;case "周四":System.out.println("主动帮助新来的程序员解决bug");break;case "周五":System.out.println("今晚吃鸡");break;case "周六":System.out.println("旅游");break;case "周日":System.out.println("郁郁寡欢,准备上班");break;default:System.out.println("数据有误!");}}
}

switch分支注意事项:

  • 表达式类型只能是byte、short、int、char ,JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long
  • case给出的值不允许重复,且只能是字面量,不能是变量
  • 不要忘记写break,否则会出现穿透现象

switch的穿透性:
如果代码执行到没有写break的case块,执行完后将直接进入下一个case块执行代码(而且不会进行任何匹配),直到遇到break才跳出分支,这就是switch的穿透性。
switch穿透性结构表达:

switch(表达式){case 值1:执行代码1;case 值2:执行代码2;...case 值n-1:执行代码n-1;break;default:执行代码 n;
}

eg:

package xuanze;import java.time.Month;public class swct {public static void main(String[] args) {int manth = 7;switch (manth){case 1:case 3:case 5:case 7:case 8:case 10:case 12:System.out.println(manth+"是31天!"); // 7是31天!break;case 2:System.out.println(manth+"闰年为29天,非闰年为是28天!");break;case 4:case 6:case 9:case 11:System.out.println(manth+"是30天!");break;default:System.out.println("数据有误!");}}
}

三、循环结构

1.for循环

  • 基本格式:
for(初始化语句;循环条件;迭代语句){循环体语句(重复执行的代码);
}
  • eg:
package xunhuan;public class fxunhuan {public static void main(String[] args) {for(int i=0; i<3; i++){System.out.println("Hello World");  // Hello World  Hello World  Hello World }}
}
  • 流程图:
  • eg1:求1-5之间的数据和,并把求和结构在控制台输出。
package xunhuan;public class fxunhuan {public static void main(String[] args) {int sum=0;for(int i=1; i<=5; i++){sum+=i;}System.out.println("1-5的和是:"+sum); // 1-5的和是:15}
}
  • eg2:求1-10之间的奇数和,并把求和结构在控制台输出。
    法一:
package xunhuan;public class fxunhuan {public static void main(String[] args) {int sum=0;for(int i=1; i<=10; i++){if(i % 2 == 1){sum+=i;}}System.out.println("1-10的奇数和是:"+sum); // 1-10的奇数和是:25}
}

法二:

package xunhuan;public class fxunhuan {public static void main(String[] args) {int sum=0;for(int i=1; i<=10; i+=2){sum+=i;}System.out.println("1-10的奇数和是:"+sum); // 1-10的奇数和是:25}
}
  • eg3:水仙花数—>水仙花数是一个三位数;水仙花数的个位、十位、百位的数字立方和等于原数。在控制台输出所有满足要求的三位数。
package xunhuan;public class fxunhuan {public static void main(String[] args) {for(int i=100; i<=999; i++){if(((i%10)*(i%10)*(i%10)+(i%100/10)*(i%100/10)*(i%100/10)+(i/100)*(i/100)*(i/100)) == i){System.out.println(i); // 153  370  371  407}}}
}

2.while循环

  • 基本格式:
 初始化语句;while (循环条件){循环体语句(被重复执行的代码);迭代语句;
}
  • eg:
package xunhuan;public class wlxh {public static void main(String[] args) {int i = 0;while (i<3){System.out.println("Hello Word"); // Hello Word   Hello Word   Hello Wordi++;}}
}
  • 流程图:
  • eg1:世界最高的山峰是珠穆朗玛峰(8848.86米=8848860毫米),假如我有一张足够大的纸,它的厚度是0.1毫米,请问,折叠多少次,可以折叠成珠穆朗玛峰的高度。
package xunhuan;public class wleg {public static void main(String[] args) {double peakHeight = 8848860;double paperThickness = 0.1;int count = 0;while (paperThickness < peakHeight){count ++;paperThickness += paperThickness;}System.out.println("折叠次数:"+count);  // 折叠次数:27}
}

3.do-while循环

  • 基本格式:
初始化语句;
do {循环体语句;迭代语句;
}while(循环条件);
  • eg:
package xunhuan;public class dowl {public static void main(String[] args) {int i = 0;do{System.out.println("Hello Word");i++;}while (i<3); // Hello Word    Hello Word    Hello Word}
}
  • 流程图:

4.死循环

  • 死循环就是一直循环的执行下去,如果没有干预不会停止下来。
  • 写法:
     // 第一种方式for (;;){System.out.println("Hello World");}// 第二种方式 经典做法while (true){System.out.println("Hello World");}// 第三种方式do{System.out.println("Hello World");}while (true);
  • eg1:系统密码是520,请用户不断的输入密码验证,验证不对输出密码错误,验证成功输出欢迎进入系统,并停止程序。
package xunhuan;import java.util.Scanner;public class dowl {public static void main(String[] args) {int okPassword = 520;Scanner sc = new Scanner(System.in);while (true){System.out.println("请您输入正确的密码:");int password = sc.nextInt();if(password == okPassword){System.out.println("登录成功了!");break;}else {System.out.println("密码错误!");}}}
}

5.嵌套循环

  • 循环嵌套,循环中包含循环
package xunhuan;public class qtxh {public static void main(String[] args) {for (int i = 0; i <3 ; i++) {for (int j = 0;j<5;j++){System.out.println("我爱你!");}}}
}
  • eg1:在控制台使用*打印出4行5列的矩形。
package xunhuan;public class qtxh {public static void main(String[] args) {for (int i = 0; i <4; i++) {for (int j = 0;j<5;j++){System.out.print("*");}System.out.println();}}
}
  • eg2:用循环嵌套打印乘法表
 package xunhuan;public class qtxh {public static void main(String[] args) {for (int i = 1; i <=9; i++) {for (int j = 1;j<=i;j++){System.out.print(j+"*"+i+"="+i*j+"  ");}System.out.println();}}
}

6.跳转控制语句

  • break:跳出并结束当前所在循环的执行。
  • continue:用于跳出当前循环的当次执行,进入下一次循环。
    注意事项:
    break:只能用于结束所在的循环,或者结束所在switch分支的执行。
    continue:只能在循环中进行使用。
 package xunhuan;public class guanjianzi {public static void main(String[] args) {for (int i = 0; i < 5; i++) {System.out.println("快乐星球"+i); // 快乐星球0 快乐星球1 快乐星球2if(i == 2){break;}}for (int j = 0; j <= 5 ; j++) {if(j==3){continue;}System.out.println("快乐地球"+j); // 快乐地球0 快乐地球1 快乐地球2 快乐地球4 快乐地球5}}
}

四、案例技术:随机数Random类

Random的使用

  • 作用:用于在程序中获得随机数的技术。
  • 使用步骤:
package shuijishu;
import java.util.Random;public class suijisu {public static void main(String[] args) {Random r = new Random();int number = r.nextInt(10);System.out.println("随机数生成了:"+number);}
}
  • 注意:
    nextInt(n)功能只能生成:0至n-1之间的随机数,不包含n。

猜数游戏

- 随机生成一个1-100之间的数据,提示用户猜测,猜大提示过大,猜小提示过小,直到猜中结束游戏。

package shuijishu;
import java.util.Random;
import java.util.Scanner;public class youxi {public static void main(String[] args) {int min = 1;int max = 100;Random r = new Random();Scanner sc = new Scanner(System.in);while (true){System.out.println("请您输入"+min+"-"+max+"中猜测的数字:");int sjs = min + (int)(Math.random() * (max-min+1));int sz = sc.nextInt();if(sz < max && sz > min){if(sjs==sz){System.out.println("恭喜你猜对了!");break;}else if(sz<sjs){System.out.println("很遗憾请从新猜测!");min = sz;}else{System.out.println("很遗憾请从新猜测!");max = sz;}}else {System.out.println("请输入合法猜测数!");}}}
}

java流程程序控制相关推荐

  1. java流程控制图_Java流程控制

    Java流程控制 用户交互Scanner 顺序结构 选择结构 循环结构 break&continue 练习 Scanner对象 通过Scanner类来获取用户的输入 语法 Scanner s ...

  2. 《快乐编程大本营》java语言训练班-第4课:java流程控制

    <快乐编程大本营>java语言训练班-第4课:java流程控制 第1节. 顺序执行语句 第2节. 条件分支语句:if条件语句 第3节. 条件分支语句:switch 条件语句 第4节. 条件 ...

  3. java 流程控制_Java流程控制

    依旧是用Xmind来显示Java流程控制的大致内容: ---------------------------------------------------- Variable举例: public c ...

  4. 前9个免费的Java流程监视工具以及如何选择一种

    这样就可以运行Java代码了. 也许它甚至可以在生产服务器上运行. 在您完成出色工作之后,我们得到了好消息和令人讨厌的消息. 令人讨厌的消息是,现在开始调试. 就是调试和应用程序性能监视. 这意味着您 ...

  5. 【四】Java流程控制

    Java流程控制 1. 顺序结构 2. 选择结构 3. 循环结构 `while` 语法 `do-while`循环语法: `for` 循环 三种循环结构的应用场景 `break` 跳出循环 `conti ...

  6. 狂神说学习笔记 Java流程控制

    目录 Java流程控制 1.用户交互Scanner Scanner对象 next() nextLine(): 2.顺序结构 3.选择结构 4.循环结构 5.Break & Continue 6 ...

  7. 划重点丨详解Java流程控制语句知识点

    本文分享自华为云社区<java知识点问题精选之流程控制语句>,原文作者:breakDraw . 流程控制语句就是用来控制程序中各语句执行的顺序,下面将详细介绍java流程控制语句. Q: ...

  8. Java流程控制语句的基本概念

    Java流程控制语句的基本概念 概述: 流程:做事情的顺序 控制:按照一定的规定去做某些事情 人为的定义好一定的规定,java语句按照规定进行执行的语句. 分类: 一.顺序语句: 自上而下自左往右执行 ...

  9. Java流程控制01 用户交互Scanner

    Java流程控制1 用户交互Scanner 1. Scanner对象 2. 测试代码 3. 比较 4. Scanner进阶使用 1. Scanner对象 1) 在Java中可以通过Scanner类来获 ...

最新文章

  1. 系统集成项目管理工程师-项目采购管理笔记
  2. SMACH专题(一)----安装与初探
  3. nginx做服务器入口_Nginx实现http反向代理
  4. 苹果发布紧急公告:老设备11月3日前再不更新就要停止服务啦
  5. kubernetes 日志定制查阅 - 排错 -- 好用的命令
  6. 华为鸿蒙系统自带什么输入法,搜狗输入法华为鸿蒙系统OS2.0版下载-搜狗输入法华为鸿蒙版v10.15.2 手机版-腾飞网...
  7. HKC PG27P3Q 评测
  8. 怎么查看正在连接的无线网密码
  9. 正则表达式 边界符 量词符 敏感词替换
  10. Latex通过bib文件转出bbl文件
  11. 富贵论坛的来历和背景
  12. 力天创见客流统计分析系统
  13. 渗透测试如何学习? (*╹▽╹*) 信息收集 ~ 其一
  14. 乌镇互联网大会:大佬们都爱AI
  15. CUDA并行编程较有用的总结
  16. 腾讯蔡晨:十年沉淀,腾讯iOA为企业安全保驾护航 1
  17. vue-excel导出-单表头,多表头导出,Export2Excel.js Blob.js
  18. matlab反演水温,HJ-1B/IRS热红外数据反演太湖水温的方法比较
  19. arch linux 删除文件,在linux/Archlinux下使用testdisk恢复误删文件
  20. Linux工具:grep精确匹配

热门文章

  1. 【附源码】计算机毕业设计Python安卓高校智慧食堂app71q97(源码+程序+LW+调试部署)
  2. linux超内存自动杀进程问题
  3. 优秀的装机必备「系统「效率「笔记「程序员」mac软件集
  4. 整理 HTML字体颜色
  5. html游戏是什么意思,HTML5究竟是个什么鬼?
  6. cts游戏手机版_cts游戏手机版ios
  7. Spring-Boot-Admin集成arthas环境部署-服务端
  8. Mac M1 Pycharm 与 Idea 同时奔溃
  9. 【PYTHON的环境搭建和安装(基于vscode下)】
  10. 巧用遮罩效果,让你动画宣传视频更容易制作 | 万彩动画大师