java流程程序控制
流程控制
- 一、顺序结构(默认)
- 二、分支结构
- 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流程程序控制相关推荐
- java流程控制图_Java流程控制
Java流程控制 用户交互Scanner 顺序结构 选择结构 循环结构 break&continue 练习 Scanner对象 通过Scanner类来获取用户的输入 语法 Scanner s ...
- 《快乐编程大本营》java语言训练班-第4课:java流程控制
<快乐编程大本营>java语言训练班-第4课:java流程控制 第1节. 顺序执行语句 第2节. 条件分支语句:if条件语句 第3节. 条件分支语句:switch 条件语句 第4节. 条件 ...
- java 流程控制_Java流程控制
依旧是用Xmind来显示Java流程控制的大致内容: ---------------------------------------------------- Variable举例: public c ...
- 前9个免费的Java流程监视工具以及如何选择一种
这样就可以运行Java代码了. 也许它甚至可以在生产服务器上运行. 在您完成出色工作之后,我们得到了好消息和令人讨厌的消息. 令人讨厌的消息是,现在开始调试. 就是调试和应用程序性能监视. 这意味着您 ...
- 【四】Java流程控制
Java流程控制 1. 顺序结构 2. 选择结构 3. 循环结构 `while` 语法 `do-while`循环语法: `for` 循环 三种循环结构的应用场景 `break` 跳出循环 `conti ...
- 狂神说学习笔记 Java流程控制
目录 Java流程控制 1.用户交互Scanner Scanner对象 next() nextLine(): 2.顺序结构 3.选择结构 4.循环结构 5.Break & Continue 6 ...
- 划重点丨详解Java流程控制语句知识点
本文分享自华为云社区<java知识点问题精选之流程控制语句>,原文作者:breakDraw . 流程控制语句就是用来控制程序中各语句执行的顺序,下面将详细介绍java流程控制语句. Q: ...
- Java流程控制语句的基本概念
Java流程控制语句的基本概念 概述: 流程:做事情的顺序 控制:按照一定的规定去做某些事情 人为的定义好一定的规定,java语句按照规定进行执行的语句. 分类: 一.顺序语句: 自上而下自左往右执行 ...
- Java流程控制01 用户交互Scanner
Java流程控制1 用户交互Scanner 1. Scanner对象 2. 测试代码 3. 比较 4. Scanner进阶使用 1. Scanner对象 1) 在Java中可以通过Scanner类来获 ...
最新文章
- 系统集成项目管理工程师-项目采购管理笔记
- SMACH专题(一)----安装与初探
- nginx做服务器入口_Nginx实现http反向代理
- 苹果发布紧急公告:老设备11月3日前再不更新就要停止服务啦
- kubernetes 日志定制查阅 - 排错 -- 好用的命令
- 华为鸿蒙系统自带什么输入法,搜狗输入法华为鸿蒙系统OS2.0版下载-搜狗输入法华为鸿蒙版v10.15.2 手机版-腾飞网...
- HKC PG27P3Q 评测
- 怎么查看正在连接的无线网密码
- 正则表达式 边界符 量词符 敏感词替换
- Latex通过bib文件转出bbl文件
- 富贵论坛的来历和背景
- 力天创见客流统计分析系统
- 渗透测试如何学习? (*╹▽╹*) 信息收集 ~ 其一
- 乌镇互联网大会:大佬们都爱AI
- CUDA并行编程较有用的总结
- 腾讯蔡晨:十年沉淀,腾讯iOA为企业安全保驾护航 1
- vue-excel导出-单表头,多表头导出,Export2Excel.js Blob.js
- matlab反演水温,HJ-1B/IRS热红外数据反演太湖水温的方法比较
- arch linux 删除文件,在linux/Archlinux下使用testdisk恢复误删文件
- Linux工具:grep精确匹配
热门文章
- 【附源码】计算机毕业设计Python安卓高校智慧食堂app71q97(源码+程序+LW+调试部署)
- linux超内存自动杀进程问题
- 优秀的装机必备「系统「效率「笔记「程序员」mac软件集
- 整理 HTML字体颜色
- html游戏是什么意思,HTML5究竟是个什么鬼?
- cts游戏手机版_cts游戏手机版ios
- Spring-Boot-Admin集成arthas环境部署-服务端
- Mac M1 Pycharm 与 Idea 同时奔溃
- 【PYTHON的环境搭建和安装(基于vscode下)】
- 巧用遮罩效果,让你动画宣传视频更容易制作 | 万彩动画大师