for

/*
    循环包括三种:
        for循环
        while循环
        do...while循环

    for循环的语法结构:
        for( 初始化表达式 ; 布尔表达式 ; 更新表达式){
            //需要重复执行的代码片段
            //【循环体:由java语句构成】
        }
    
    for循环的执行过程、执行原理:
        初始化表达式、布尔表达式、封信表达式都不是必须的!
            但两个分号是必须的!
        初始化表达式最先执行,
            并且在整个for循环当中只执行一次
        布尔表达式必须是true/false,不能是其他值
        for的执行过程:
            
            先执行初始化表达式,并且该表达式只执行一次
            
            判断布尔类型的结果是true还是false

                布尔表达式true
                    
                    执行循环体
                    执行更新表达式
                    判断布尔表达式的结果是true还是false
                        
                        布尔表达式true

                            执行循环体
                            执行更新表达式
                            判断布尔表达式的结果...

                                ...

                        布尔表达式false

                            循环结束

                布尔表达式false
                    
                    循环结束

*/
public class ForTest01
{
    public static void main(String[] args){
        
        //需求:输出数字1~10
        for(int i = 1; i <= 10; i++){
            System.out.println(i);
        }

        /*死循环
        for(;;){
            System.out.println("死循环");
        }
        */
    }
}
public class ForTest02
{
    public static void main(String[] args){
        
        for(int i = 1; i <= 10; i++){
            System.out.println(i);
        }
        //这个i变量不能在main方法的作用域访问
        //System.out.println("i = " + i) //编译错误

        //main方法作用域当前的i变量
        //只要main方法没有结束,这里的i就能使用
        int i; //声明和赋值可以分开

        for(i = 1; i <= 10; i++){
            System.out.println(i);

        //这里可以访问main方法作用域当中的i变量
        System.out.println(i); //10
        }
    }
}
public class ForTest03
{
    public static void main(String[] args){
        
        //输出1~10的所有奇数
        for(int i = 1; i <= 10; i += 2){
            System.out.println("i --> " + i);
        }

        //输出1~10的所有偶数
        for(int i = 2; i <= 10; i += 2){
            System.out.println("i --> " + i);
        }

        for(int i = 10; i > 0; i--){
            System.out.println("i --> " + i);
        }
        for(int i = 10; i > 0;){ //也可以把执行程序写到下面
            System.out.println("i --> " + i);
            i--;
        }
    }
}
/*
    循环语句和条件语句嵌套使用【for和if嵌套使用】
*/
public class ForTest04
{
    public static void main(String[] args){
        
        //找出1~30所有的奇数
        //第一种方法:从1开始,每次递增2
        for(int i = 1; i < 30; i += 2){
            System.out.println(i);
        }

        //第二种方法:从1开始逐一递增,用if剔除
        for(int i = 0; i < 30; i++){
            if(i % 2 == 1){
                System.out.println(i);
            }
        }

        //以上两种方法,优先使用第一种,
        //代码少,循环次数少,效率高
    }
}
/*
    在前个程序的基础之上,计算1~100奇数的和
*/
public class ForTest05
{
    public static void main(String[] args){
        
        int sum = 0;
        for(int i = 1; i < 100; i += 2){
            sum += i;
        }
        System.out.println(sum);
    }
}
/*
    for循环嵌套for循环
*/
public class ForTest06
{
    public static void main(String[] args){
        //循环体中可以编写其他的控制语句
        for(int i=0; i<=10; i++){

            for(int j=0; j<3; j++){
                System.out.println(j);
            }
        }

    }
}
/*
    使用for循环输出九九乘法表
*/
public class ForTest07
{
    public static void main(String[] args){
        
        for(int line1 = 1; line1 <= 9; line1++){

            for(int line2 = 1; line2 <= line1; line2++){

                System.out.print(line1 + "x" + line2 + "=" + (line1 * line2) + " ");
            }
            System.out.println();
            //System.out.print("\n") //也行
        }
    }
}
/*
    编写1~100所有的素数
    素数:只能被1和自身整除
*/
public class ForTest08
{
    public static void main(String[] args){
        
        /*
        //负责取i
        for(int i = 2; i <= 100; i++){
            //判断i是否为素数
            boolean isSuShu = true; //默认将i看作素数
            for(int k = 2; k < i; k++){            
                if(i % k == 0){
                    isSuShu = false;
                    break;
                }
            }
            System.out.println(isSuShu ? i + "是素数": i + "不是素数");
        }
        */

        int count = 0;
        for(int i = 2; i <= 100; i++){
            boolean isSuShu = true;
            for(int k = 2; k < i; k++){            
                if(i % k == 0){
                    isSuShu = false;
                    break;
                }
            }
            if(isSuShu){
                count++;
                System.out.print(i + " ");
                if(count == 8){
                    System.out.println();
                    count = 0; //归零
                }
            }
        }
    }
}

 

posted @ 2020-08-10 23:32  Lerresino  阅读(115)  评论(0)    收藏  举报