ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

05-循环语句

05-循环语句 循环语句for循环例while循环例在写代码时选择for循环还是while循环do…while循环无限循环例循环控制break例题continue例题小结猜数字经典算法题生成随机数猜数字代码循环嵌套例题1例题2循环语句配套完整代码GitHub仓库https://github.com/LIN-commit/java-learning代码所在目录java-learning/loop/本节对应代码ForDemo.java : for循环简单示例WhileDemo.java :while循环简单示例InfiniteLoop.java :无限循环InfiniteLoop_error.txt :无限循环错误示例BreakDemo.java :break使用示例PrimeNumber_Demo1 判断一个数是否是质数的写法一PrimeNumber_Demo2 判断一个数是否是质数的写法二ContinueDemo.java :continue使用示例NumberGuess.java :猜数字经典例题PrintPattern.java :打印一个4行5列的图形RightTriangle.java :打印一个直角三角形温馨提示为方便直接复制运行代码未写包名完整规范的源码结构可查看本人 GitHub 仓库for循环for循环格式for(初始化语句;条件判断语句;条件控制语句){ 循环体语句; }例打印1~5对应代码ForDemo.javapublicstaticvoidmain(String[]args){for(inti1;i5;i){System.out.println(i);}}[运行结果]1 2 3 4 5while循环while循环格式初始化语句 while(条件判断语句){ 循环体语句; 条件控制语句; }例题目利用while循环实现游戏中连续跳跃五次用输出语句模拟跳跃逻辑。对应代码WhileDemo.javapublicstaticvoidmain(String[]args){inti1;while(i5){System.out.println(游戏人物第i次跳跃);i;}}[运行结果]游戏人物第1次跳跃 游戏人物第2次跳跃 游戏人物第3次跳跃 游戏人物第4次跳跃 游戏人物第5次跳跃在写代码时选择for循环还是while循环for循环知道循环次数或者循环范围while循环不知道循环次数和范围只知道循环结束条件do…while循环do…while循环语句格式初始化语句; do{ 循环体语句; 条件控制语句; }while(条件判断语句)小贴士do…while循环语句是先执行后判断无限循环例对应代码InfiniteLoop.javapublicstaticvoidmain(String[]args){while(true){System.out.println(hello world);}}[运行结果]无限输出hello worldhello world hello world hello world ......在无限循环的代码块下方不能写任何代码对应代码InfiniteLoop_error.textpublicstaticvoidmain(String[]args){while(true){System.out.println(hello world);}System.out.println(ok);}[运行结果]java: 无法访问的语句 //代码报错因为永远无法访问到输出“OK”的那条语句无限循环通常配合break来结束循环控制break只能写在switch或循环中表示结束不能单独书写例对应代码BreakDemo.javapublicstaticvoidmain(String[]args){for(inti1;i10;i){System.out.println(i);if(i5)break;}}[运行结果]1 2 3 4 5小贴士循环的快速生成方式次数.fori回车例题键盘录入一个大于2的整数判断是否为质数写法一对应代码PrimeNumber_Demo1.javapublicstaticvoidmain(String[]args){//键盘录入一个大于2的整数intnum0;while(true){System.out.println(输入一个大于2的整数);ScannerscnewScanner(System.in);numsc.nextInt();if(num2)break;elseSystem.out.println(当前输入的数字不合法请重新输入);}//判断num是否是一个质数intcount0;for(inti2;inum;i){if(num%i0){count;break;//只要找到一个数字能被num整除那num就不是质数后面的数字就没必要判断了}}if(count0)System.out.println(num是质数);elseSystem.out.println(num不是质数);}小贴士在循环里定义的变量只能用于循环一旦出了循环就会被销毁而代码中的num变量出了while循环之后还会用到所以要在循环外定义变量。这里我的建议是在写代码时尽量不要在循环内定义变量减少报错的几率。写法二要证明一个数字是不是质数就是看它有没有除了1和它本身的因数且因数都是成对出现的一个数字大于等于平方根一个数字小于等于平方根的所以只需要判断在1到平方根之间有没有数能整除num即可num的平方根的代码写法是’Math.sqrt(num)’对应代码PrimeNumber_Demo2//判断num是否是一个质数intcount0;for(inti2;iMath.sqrt(num);i){if(num%i0){count;break;}}continuecontinue表示结束本次循环继续下次循环且只能写在循环中用法类似于跳过不能单独书写例题循环打印1~5跳过3对应代码ContinueDemo.javapublicstaticvoidmain(String[]args){for(inti1;i5;i){if(i3)continue;System.out.println(i);}}[运行结果]1 2 4 5小结break:不能单独书写只能写在switch或循环中表示结束跳出的意思continue:不能单独书写只能写在循环中结束本次循环继续下次循环猜数字经典算法题生成一个1~10之间的随机数利用键盘录入模拟猜的动作一直猜直到猜中为止生成随机数写法类似于键盘录入1.找到Random(1)在主入口内输入random后回车,变为Random,且在主入口外出现import java.util.Random;这行是确定Random的位置。(2)在Random后继续输入Random r new Random();2.让Random干活生成不同类型的随机数int num r.nextInt();如果里是空的默认在int的取值范围内取数如果在里写数字B表示随机数的最大值但不包含B如果在里写数字A,B表示取值范围是A~B包含A,不包含B注意r.nextInt(B)这个写法是Java 17 引入的写法如果你的JDK版本低于17请用r.nextInt(B)1例importjava.util.Random;publicclasstest1{publicstaticvoidmain(String[]args){RandomrnewRandom();intnumr.nextInt();System.out.println(num);}}[运行结果1]16129913[运行结果2]-378128417猜数字代码对应代码NumberGuess.javaimportjava.util.Random;importjava.util.Scanner;publicclasstest1{publicstaticvoidmain(String[]args){//生成一个在1~10之间的随机数RandomrnewRandom();intnumr.nextInt(1,11);//循环猜数直到猜中为止intguessNumber0;//变量命名的规则第一个单词首字母小写之后的单词首字母全部大写while(true){System.out.println(输入你猜的数);ScannerscnewScanner(System.in);guessNumbersc.nextInt();//提示猜的数偏大还是偏小if(guessNumbernum)System.out.println(猜的数偏小);elseif(guessNumbernum)System.out.println(猜的数偏大);else{System.out.println(猜对了);break;}}}}[运行结果]输入你猜的数 5 猜的数偏大 输入你猜的数 2 猜的数偏小 输入你猜的数 3 猜的数偏小 输入你猜的数 4 猜对了循环嵌套例题1打印4行5列的图案********************System.out.println();表示先打印再换行System.out.print();去掉ln表示只打印不换行对应代码PrintPattern.javapublicstaticvoidmain(String[]args){for(intline1;line4;line){for(intcolumn1;column5;column){System.out.print(*);}System.out.println();//换行}}[运行结果]***** ***** ***** *****例题2打印直角三角形**********对应代码RightTriangle.javapublicstaticvoidmain(String[]args){for(intline1;line4;line){for(intcolumn1;columnline;column)//内层循环的条件可以依赖外层循环的变量System.out.print(*);System.out.println();}}[运行结果]* ** *** **************以上就是java循环语句的基础内容了。下一篇我们将学习几道经典例题打印特殊图形和九九乘法表欢迎继续关注蓝猫学姐的java学习笔记~
返回列表