1.Break和Continue
break
中断/跳出
Continue
直接进行循环的下一轮
break和continue
package day0401; import java.util.Scanner; public class Test1 { public static void main(String[] args) { f1(); f2(); } private static void f1() { for(int i=1;;i++) { double random = Math.random(); if(random > 0.999) { System.out.println("第"+i+"次:"+random); break; } } } private static void f2() { for(int i=1;;i++) { System.out.print("输入第"+i+"个文件:"); String s = new Scanner(System.in).nextLine(); if(s.equals("exit")) break; int index = s.lastIndexOf("."); if(index == -1) continue; s = s.substring(index+1); System.out.println("后缀为:"+s); } } }
2.循环命名
在嵌套循环中,控制外层循环,需要对外层循环命名
Outer: For() { inner: For() { Break outer; } }
输入整数n,求n内有多少个质数
package day0402; import java.util.Scanner; public class Test1 { public static void main(String[] args) { System.out.print("输入一个整数:"); int i = new Scanner(System.in).nextInt(); f(i); } private static void f(int i) { if (i < 2) { System.out.println("没有质数"); return; } if (i == 2) { System.out.println("一个质数"); return; } int counts = 1; outer: for (int n = 3; n <= i; n++) { double max = Math.sqrt(n) + 1; for (int j = 2; j < max; j++) { if (n % j == 0) continue outer; } ++counts; } System.out.println(i + "有" + counts + "个质数"); } }
3.while循环
先判断,再执行
while(执行条件) {
代码
}
package day0403; import java.util.Scanner; public class Test1 { public static void main(String[] args) { String s = ""; while(!s.equals("exit")) { System.out.print("请输入一串数字:"); s = new Scanner(System.in).nextLine(); for(int i=0;i<s.length()-1;i++) { int ascll = s.charAt(i); if(ascll < '0' || ascll > '9') { System.out.println("请输入数字"); break; } } } } }
4.do-while循环
l 先执行,再判断
l 至少执行一次
do {
代码
} while(执行条件);
l for和while
n 三种循环都可以互相代替
n for
u 固定次数
u 数据规律变化
package day0403; import java.util.Scanner; public class Test2 { public static void main(String[] args) { String s = ""; do { System.out.print("请输入一串数字:"); s = new Scanner(System.in).nextLine(); for(int i=0;i<s.length()-1;i++) { int ascll = s.charAt(i); if(ascll < '0' || ascll > '9') { System.out.println("请输入数字"); break; } } }while(!s.equals("exit")); } }
猜数字
(0,1000]范围的整数
package day0404; import java.util.Random; import java.util.Scanner; public class Test1 { public static void main(String[] args) { int answer = new Random().nextInt(999) + 1; int i; do { System.out.print("请输入一个数字:"); i = new Scanner(System.in).nextInt(); if (i > answer) System.out.println("大了"); else if (i < answer) System.out.println("小了"); } while (i != answer); } }