Java 之旅

初级05 - Java的控制流

2019-07-28  本文已影响0人  晓风残月1994

没太多要说的,和 JavaScript 或其他语言差不多。

while (expression) {
     statement(s)
}

do {
     statement(s)
} while (expression);
for (int i = 0; // 任何语句,包括空语句
     i < 100; // 返回boolean的语句,包括空语句
     i++) { // 任何语句,包括空语句
   System.out.println(i);
}
for (String s: Iterable<String>) {
   ....
}
switch(expression){    
case value1:    
 //code to be executed;    
 break;  //optional  
case value2:    
 //code to be executed;    
 break;  //optional  
......    
    
default:     
 // code to be executed if all cases are not matched;    
}   

控制流:嵌套
上面提到的都能嵌套。

例子:

  1. 求1到n之间有多少个质数(素数)
public class Main {
    public static void main(String[] args) {
        System.out.println(howManyPrimeNumbers(5));
    }

    /**
     * 给定一个数字n,返回1到n之间的质数(素数)个数,不包括n本身。
     *
     * <p>例如,n=5,返回2,因为1到5之间有2个质数:2和3。
     *
     * <p>提示:对于正整数n,如果用2到Math.sqrt(n)+1之间的所有整数去除,均无法整除,则n为质数。
     *
     * @param n 给定的数字
     * @return 1到n之间(不包括n)质数的个数
     */
    public static int howManyPrimeNumbers(int n) {
        int count = 0;
        label:
        for (int i = 2; i < n; i++) {       // 已知 1 不是素数,所以从 2 开始
            for (int j = 2; j < (Math.sqrt(i) + 1); j++) {
                if (i % j == 0 && i != j) { // 提前出现非自己的整除说明不是素数
                    continue label;         // 只是 break 的话,count 还是会 +1,所以要直接跳到外层循环
                }
            }
            count++;
        }
        return count;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读