循环/循环控制

1.BreakContinue

 

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  forwhile

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);

    }

}