1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java流程程序控制

java流程程序控制

时间:2018-09-21 11:16:53

相关推荐

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("请输入合法猜测数!");}}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。