1 嵌套for循环
2 break与continue
2.1 概念
break: 直接结束当前循环,跳出循环体,简单粗暴
break以后的循环体中的语句不会继续执行,循环体外的会执行
注意如果是嵌套for循环,在内层循环遇到了break,只会跳出当前这一层内循环哦
continue: 跳出本轮循环,继续下一轮循环
continue后本轮循环体中的语句不会继续执行,但是会继续执行下轮循环,循环体外的也会执行
package cn.tedu.basic;
import java.util.Scanner;
/**本类用于关键字break与continue的测试*/
//需求:猜数字案例
//提示并接受用户猜的数字,给用户100次机会
//如果猜到88,就结束,没猜到,就一直猜,直到用完所有的机会
public class TestBreakAndContinue {
public static void main(String[] args) {
//1.设置循环,执行100次
for(int i = 1;i<=100;i++) {
//2.提示并接收用户猜的数字
System.out.println("请您输入要猜的数字:");
int input = new Scanner(System.in).nextInt();
//3.判断用户是否猜对
if(input!=88) {
System.out.println("很抱歉!再试试吧!");
/**continue的作用是结束本轮循环中continue后面的语句
* 直接开启下一轮循环
* 注意:此处的continue不是决定能不能再次输出的,能输入几次取决于循环的次数
* continue只是为了让程序效率更高,当数据不是88时,就没有必要判断后面的语句了*/
/**continue与break后都不可以加代码*/
continue;
}
if(input == 88) {
System.out.println("恭喜您!猜对了!");
break;/**用于结束当前循环,只要遇到了break,就结束循环*/
}
}
}
}
3 循环结构2 : while
3.1 形式(先判断,再执行)
4 循环结构3 : do-while
4.1 形式(先执行,再判断,循环体代码保证最少执行一次)
package cn.tedu.basic;
import java.util.Random;
import java.util.Scanner;
/**本类用于练习While循环*/
//需求:产生 一个 随机数 ,和用户一直输入的值做比较,直到用户猜对
public class TestWhile {
public static void main(String[] args) {
//1.生成一个随机数,交给变量r来保存,用来给用户去猜
/**参数100是自定义的,此时生成的随机数的范围是[0,100)以内的整数*/
int r = new Random().nextInt(100);//获取0-99的随机数
//System.out.println(r);
//2.调用一个自定义的猜数字方法
guessNum(r);
}
//本方法用来完成猜数字的功能
private static void guessNum(int r) {
/**while(判断是否能继续循环的条件 ){如果条件的结果为true,执行此处循环体的内容}
* 所以,我们经常用while写死循环:格式:while(true){}
* 但是一定注意!!!死循环必须设置程序的出口【循环什么时候结束】
*/
while(true){//设置了一个一直会执行的死循环
//1.接收用户猜的数字
System.out.println("猜猜看");
int input = new Scanner(System.in).nextInt();
//2.判断用户是否猜对
if(input > r) {
System.out.println("猜大啦");
}else if(input < r) {
System.out.println("猜小啦");
}else if(input==r) {
System.out.println("恭喜你!猜对了~");
break;//当用户猜对了,就结束循环,所以,本处是死循环的出口
}
}
}
}
package cn.tedu.basic;
import java.util.Random;
/**本类用于练习do-while循环*/
public class TestDoWhile {
public static void main(String[] args) {
int n;
do {
System.out.println("我是循环体");
n=new Random().nextInt(100);//[0,100)
System.out.println(n);
}while(n>100);
}
}