/* 看板娘 */ canvas#live2dcanvas { border: 0 !important; left: 0; }

Java 选择结构 循环结构 控制循环的语句

选择结构之(if语句)

/*
    关于java语言当中的if语句,属于选择结构,if语句又成为分支语句/条件控制语句:
        1、if语句的语法结构:四种编写方式
            第一种:
                if(布尔表达式){
                    java语句;
                    java语句;
                    java语句;
                    .....
                }
            第二种:
                if(布尔表达式){
                    java语句;
                    java语句;
                }else{
                    java语句;
                    java语句;
                }
            第三种:
                if(布尔表达式){
                    java语句;
                    java语句;
                }else if(布尔表达式){
                    java语句;
                    java语句;
                }else if(布尔表达式){
                    java语句;
                    java语句;
                }else if(布尔表达式){
                    java语句;
                    java语句;
                }....
            第四种:
                if(布尔表达式){
                    java语句;
                    java语句;
                }else if(布尔表达式){
                    java语句;
                    java语句;
                }else if(布尔表达式){
                    java语句;
                    java语句;
                }else{
                    java语句;
                    java语句;
                }
        2、重点:对于java中的if语句来说,只要有一个分支执行,整个if语句全部结束。

        3、注意:以上的第二种编写方式喝第四种编写方式都带有else分支,这两种方式可以保证会有分支执行。

        4、“所有的控制语句”都是可以嵌套使用的,只要合理嵌套就行。
            if(){
                if(){
                    if(){
                    }
                }
            }else{
                if(){
                }else{
                    if(){
                        if(){
                        
                        }
                    }
                }
            }
            注意:嵌套使用的时候,代码格式要保证完美。【该缩进的时候必须缩进,大部分情况下使用大括号包围的需要缩进】

        5、if语句的分支中只有一条java语句的话,大括号可以省略不写。
            if(true/false){
                一条java语句;
            }
            if(true/false) 一条java语句;

            这种方式不推荐使用,别人这么写能看懂就行。




*/

public class ifTest01
{
    public static void main(String[] agrs){
        // 需求:所在位置的五公里范围之内有肯德基的话,去KFC吃午饭
        // 公里数
        double distance = 6.0; // 单位KM
        // 判断语句
        if(distance < 5){
            System.out.println("去KFC吃开封菜!");
        }else{
            System.out.println("太远了不去了!");
        }

        // 需求:假设系统给定一个考生的成绩,成绩可能带有小数点,成绩范围是0-100分,根据学生的成绩判断学生的成绩等级:
        // [90-100] A  [80-90] B  [70-80] C [60-70] D [0-60] E
        /*
        double grade = 99.5;
        if(grade >= 90){
            System.out.println("你的成绩是“A”!");
        }else if(grade >= 80){
            System.out.println("你的成绩是“B”!");
        }else if(grade >= 70){
            System.out.println("你的成绩是“C”!");
        }else if(grade >= 60){
            System.out.println("你的成绩是“D”!");
        }else{
            System.out.println("你的成绩不合格");
        }
        */

        double soore = 100;
        if(soore < 0 || soore > 100){
            System.out.println("对不起,你提供的考生成绩不合法!");
        }else if(soore >= 90){    // 能够判断到这里说明成绩一定是[0-100]
            System.out.println("该考生的考试成绩等级是:A等级");
        }else if(soore >= 80){    // 能够判断到这里说明成绩一定是小于90分的
            System.out.println("该考生的考试成绩等级是:B等级");
        }else if(soore >= 70){
            System.out.println("该考生的考试成绩等级是:C等级");
        }else if(soore >= 60){
            System.out.println("该考生的考试成绩等级是:D等级");
        }else{
            System.out.println("该考生的考试成绩等级是:E等级");
        }


    }
}

知识点

/*
    System.out.println(); 负责向控制台输出【从内存到控制台】

    接收用户键盘输入,从“键盘”到“内存”。【输入的过程,到内存中去】

    以下代码先不要问为什么!固定编写就可以接收用户键盘的输入
*/


public class KeyInputTest
{
    public static void main(String[] args){
    
        // 第一步:创建键盘扫描对象
        java.util.Scanner s = new java.util.Scanner(System.in);
        // 第二步:调用Scanner对象的next()方法开始接收用户键盘输入
        // 程序执行到这里会停下,等待用户的输入
        // 当用户输入的时候,并且最终敲回车键的时候,键入的信息会自动赋值给userInputContent
        // 程序执行到这里,用户输入的信息已经到内存中了。
        // 接手文本【以字符串的形式接收】
        // String userInputContent = s.next(); // 标识符的命名规范:见名知意

        // 将内存中的数据输出到控制台
        // System.out.println("您输出了:"+ userInputContent);

        // 接手数字【以整数型int的形式来接收】
        int num = s.nextInt();
        System.out.println("您输出的数字是:" + num);
        
    }
}


/*
    总结:记住代码,或者直接将代码复制粘贴
    第一步:
        java.util.Scanner s = new java.util.Scanner(System.in);
    第二步:
        String str = s.next()
        或
        int num = s.nextInt();
*/
/*
    需求:
        假设系统给定一个人的年龄,根据年龄来判断这个人出于生命的哪个阶段,年龄必须在【0-150】
        [0-5] 幼儿  [6-10] 少儿 [11-18] 青少年    [19-35] 青年  [36-55] 中年 [56-150] 老年
*/


public class ifTest02
{
    public static void main(String[] args){
        // 1、接收键盘输入:年龄【输入的时候必须输入数字】
        java.util.Scanner s = new java.util.Scanner(System.in);
        // 输入您的年纪:
        // 输入提示信息,要不然用户根本不知道这里要干嘛!
        System.out.print("请输入您的年纪:");    
        // 停下来等待用户的输入,输入之后自动接收,赋值给age变量。
        int age = s.nextInt();
        // 2、根据需求进行业务逻辑判断
        if(age <= 0 || age > 150){
            System.out.println("对不起,你输入有误!");
        }else if(age >= 56){
            System.out.println("您好!,你得年纪处于:老年期!");
        }else if(age >= 36){
            System.out.println("您好!,你得年纪处于:中年期!");
        }else if(age >= 19){
            System.out.println("您好!,你得年纪处于:青年期!");
        }else if(age >= 11){
            System.out.println("您好!,你得年纪处于:青少年期!");
        }else if(age >= 6){
            System.out.println("您好!,你得年纪处于:少儿期!");
        }else{
            System.out.println("您好!,你得年纪处于:幼儿期!");
        }
    }
}
/*
    需求:
        判断当前的天气:
            当外边下雨的时候:
                带雨伞:
                    判断性别:
                        当性别为男:带一把大黑伞
                        当性别为女:带一把大花伞
            当外边是晴天的时候:
                判断天气的温度:
                    当天气温度在30度以上:
                        当性别为男:戴墨镜
                        当性别为女:擦防嗮霜
*/

public class ifTest03
{
    public static void main(String[] args){
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.println("欢迎使用本系统,您通过本新系统可以完成一些简单的判断");
        System.out.println("说明1:0表示下雨,1表示晴天");
        System.out.println("说明2:0表示男,1表示女");
        System.out.println("说明3:温度请输入20~40之间");

        // 接收天气状况
        System.out.print("请输入:0、下雨,1、晴天:");
        int weather = s.nextInt();

        // 接收性别状况
        System.out.print("请输入:0、男,1、女:");
        int gender = s.nextInt();
            
        // 晴天
        if(weather == 1){
            // 判断温度
            System.out.print("请输入温度:");
            int rature = s.nextInt();
            
            // 温度之间判断
            if(rature <= 20 || rature > 40){
                System.out.println("请输入温度在20~40之间");
            }else if(rature >= 30){
                if(gender == 0){
                    System.out.println("请戴墨镜哦~");
                }else if(gender == 1){
                    System.out.println("请擦防晒霜哦~");
                }else{
                    System.out.println("输入的语法有误,请输出0、男还是1、女");
                }
            }else{
                System.out.println("温度正常,不用带东西哦,放心去玩吧~");
            }
        // 下雨
        }else if(weather == 0){
            if(gender == 0){
                System.out.println("请带一把大黑伞");
            }else if (gender == 1){
                System.out.println("请带一把大花伞");
            }else{
                System.out.println("输入的语法有误,请输出0、男还是1、女~");
            }
        }else{
            System.out.println("输入的语法有误,请输出0、下雨还是1、晴天!");
        }
    }
}
/*
    if语句
*/
public class ifTest04
{
    public static void main(String[] args){
        boolean sex = true;

        if(sex){
            System.out.println("男");
        }else{
            System.out.println("女");
        }

        sex = false;

        if(sex) System.out.println("男"); else System.out.println("女");

        // 以下程序中编译错误,没有嵌套大括号else语法错误
        /*
        if(sex)
            System.out.println("男");
            System.out.println("呵呵");
        else
            System.out.println("女");
        */
    }
}

 

选择结构之(switch语句)

/*
    关于switch语句
        1、switch语句也属于选择结构,也是分支语句
        2、switch语句的语法结构:
            一个比较完整的switch语句应该这样编写:
                switch(int或String类型的字面值或变量){
                    case int 或 String类型的字面值或变量:
                        java语句:
                        break;
                    case int 或 String类型的字面值或变量:
                        java语句:
                        break;
                    default:
                        java语句:
                        ....
                }
        3、switch语句的执行原理:
            switch后面小括号当中的”数据“和case后面的”数据“进行一一匹配,匹配成功的分支执行。
            按照自上而下的顺序依次匹配。
        4、匹配成功的分支执行,分支当中最后有”break;“语句的话,整个switch语句终止。
        5、匹配成功的分支执行,分支当中没有”break;“语句的话,直接进入下一个分支执行(不进行匹配),
        这种现象被成为case穿透现象。【提供break;语句可以避免穿透】
        6、所有分支都没有匹配成功,当有default的语句话,会执行default
        7、switch后面和case后面只能是int或者String类型的数据,不能是探测其它类型。
            - 当然byte、short、char也可以直接写到switch和case后面,因为他们可以进行自动类型转换,
            btye,short,char可以自动转换成int类型。
            - JDK6的,switch和case后面只能探测int类型
            - JDK7之后包括7版本在内,引入新特性,switch关键字和case关键字后面可以探测int或String类型的数据。
        8、case可以合并:
            int i = 10;
            switch(i){
                case 1: case 2: case 3; case10;
                    System.out.println("Tst Code!");
            }

                
*/
public class SwitchTest01
{
    public static void main(String[] args){
        /*
        long x = 100L;  // 编译报错
        int b = a;

        
        long x = 100L;
        switch(x){} // 变异报错
        */

        // 解决编译报错
        long x = 100L;
        switch((int)x){}

        byte b = 10;
        switch(b){};

        byte d = 10;
        switch(d){};

        char cc = 97;
        switch(cc){};

        // 编译报错
        // switch(true){}

        String username = "zhangsan";
        switch(username){}


        /*
            较switch完整的switch语句
        */
        // 接收用户的输入:
        // 1 表示星期一
        // 2 表示星期二
        // ...
        // 7 表示星期日
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.print("请输入数字:");
        int num = s.nextInt();
        switch (num){
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期天");
                break;
            default:
                System.out.println("对不起,你输入的数字有误~");
        }

        
    }
}
/*
    switch确实可以探测String类型,这是Java7的新特性。
*/
public class SwitchTest02
{
    public static void main(String[] args){
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.print("请输入星期几:");
        String dayOfweek = s.next();
        switch (dayOfweek){
            case "星期一":
                System.out.println(1);
                break;
            case "星期二":
                System.out.println(2);
                break;
            default:
                System.out.println("对不起,你输入的数字有误~");
        }

        
    }
}
public class SwitchTest03
{
    public static void main(String[] args){
        // char c = 'A';
        char c = 'B';
        // char c = 'C';
        // char c = '65';
        // char c = 'D';

        switch(c){
            case 'A' :
                System.out.println("高级");
                break;
            case 'B' :
                System.out.println("中级");
                break;
            case 'C' :
                System.out.println("初级");
                break;
            default:
                System.out.println("出错了!");
        }
        // switch()
        switch(c){
            case 'A' :
                System.out.println("高级");
                break;
            case 66 :
                System.out.println("中级");
                break;
            case 'C' :
                System.out.println("初级");
                break;
            default:
                System.out.println("出错了!");
        }
        

        
    }
}
/*
    实现计算器当中的
        + - * / %
    实现思路:
        1、选择所有数据从键盘输入
        2、使用switch语句进行判断
        3、需要从控制台输入三次:
            - 第一个数字
            - 运算符
            - 第二个数字
    最终在控制台上是这样的一个场景:
        欢迎使用简单计算器系统;
        请输入第一个数字:10
        请输入运算符:+、-、*、/、%
        请输入第二个数字:20
        运算结果:10 + 20 = 30
*/


public class SwitchTest04
{
    public static void main(String[] args){
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.println("欢迎使用计算器系统");
        System.out.print("请输入第一个数字:");
        int One = s.nextInt();
        
        System.out.print("请输入运算符:");
        String symbol = s.next();
        
        System.out.print("请输入第二个数字:");
        int Two = s.nextInt();

        switch(symbol){
            case "+" :
                System.out.println("云算结果:" + One + " + " + Two + " = " + (One + Two));
                break;
            case "-" :
                System.out.println("云算结果:" + One + " - " + Two + " = " + (One - Two));
                break;
            case "*" :
                System.out.println("云算结果:" + One + " * " + Two + " = " + (One * Two));
                break;
            case "/" :
                System.out.println("云算结果:" + One + " / " + Two + " = " + (One / Two));
                break;
            case "%" :
                System.out.println("云算结果:" + One + " % " + Two + " = " + (One % Two));
                break;
            default :
                System.out.println("对不起,您输入的结果有误~");    
        }
    
    }
}
/*
    假设系统给定成绩,请判断该考生的成绩:
    1、有效成绩范围:【0 - 100】
    2、考试成绩可能带有小数
    3、考成成绩和等级之间的对照关系:
        【90-100】A
        【80-90】 B
        【70-80】 C
        【60-70】 D
        【0-60】  E
    4、以上需求必须采用switch语句完成,不能采用if。

    窍门:(int)(成绩/10)
        0 1 2 3 4 5 6 7 8 9 10 
*/

public class SwitchTest05
{
    public static void main(String[] args){
        
        // 考生成绩
        // double soore = 95.5;
        // double soore = 60.5;
        double soore = 59.5;


        // 转换成int
        int grade = (int)(soore / 10);

        switch(){
            case 9 : case 10 :
                System.out.println("A");
                break;
            case 8 :
                System.out.println("B");
                break;
            case 7 :
                System.out.println("C");
                break;
            case 6 :
                System.out.println("D");
                break;
            default :
                System.out.println("E");
        
        }
    }
}

循环结构之(for语句)

/*
    1、循环结构:
        在程序当中总有一些需要反复的/重复的执行,假设没有循环结构,那么这段需要重复执行的代码自然是需要重复编写的,代码无法得到重复使用。
        所以多数编程语言都是支持循环结构的,将来把需要反复执行的代码片段放到,“循环体”,再联合“计数器”,共同控制这段需要反复执行的代码。

    2、基本上所有的编程语言支持的循环包括三种:
        for循环
        while循环
        do..while循环
    3、当前示例主要讲解for循环,for循环的语法结构是什么呢?
        语法结构:
            for(初始化表达式; 布尔表达式; 更新表达式){
                // 是需要重复执行的代码片段【循环体:由java语句构成】
            }
    4、for循环的执行过程/执行原理?
        - 初始化表达式、布尔表达式、更新表达式都不是必须的!【但是两个分好是必须的】
        - 初始化表达式最先执行,并且在整个for循环当中只执行一次
        - 布尔表达式必须是true/false,不能是其它值。
        - for的执行过程:
            先执行初始化表达式,并且该表达式只执行一次
            判断布尔表达式的结果是true还是false
                - 布尔表达式true
                    * 执行循环体
                    * 执行跟新表达式
                    * 判断布尔表达式的结果是true还是false
                        - 布尔表达式true
                            * 执行循环体
                            * 执行跟新表达式
                            * 判断布尔表达式的结果是true还是false
                                - 布尔表达式true
                                    * 执行循环体
                                    * 执行跟新表达式
                                    * 判断布尔表达式的结果是true还是false
                                    ....
                                - 布尔表达式false
                                    * 循环结束
                        - 布尔表达式false
                            * 循环结束
                - 布尔表达式false
                    循环结束

*/

public class ForTest01
{
    public static void main(String[] args){
        
        // 需求:输出数字1~10
        
        // 使用循环结构来代替以上所有反复执行的代码块。
        // 使用循环语句可以让代码量变少
        for(int i = 1; i <= 10; i+=1){
            System.out.println(i);
        }
        
        // 死循环
        for(;;){
            System.out.println("死循环");
        }
    }
}
/*
    i变量的作用域。
*/
public class ForTest02
{
    public static void main(String[] args){
        
        // 以下的for循环当中“i”变量的作用域是景象于当前for循环内部使用。
        for(int i = 0; i < 10; i+=1){
            System.out.println("i -- >" + i);
        }
        
        // 死循环
        for(int i = 0; i <= 10; i+=1){
            System.out.println("i -- >>" + i);
        }

        // 这个i变量可以在main方法的作用域当中访问吗?无法访问
        // System.out.println("i -- >>" + i);  // 编译错误

        // main方法作用域当中的i变量,只要main方法没有结束,这里i就能用。
        int i = 0;
        for(; i<10; i+=1){
            System.out.println("i =" + i); // 9
        }
        // 这里可以访问main方法作用域当中的i变量
        System.out.println("i -- >>" + i);   // 10



        int j;
         for (j = 1; j < 10; j++){
            System.out.println("j -- >>" + j);
        }

        System.out.println(j);
    }
}
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 3 5 7 9
        }

        System.out.println("--------------------------");

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

        System.out.println("--------------------------");

        for(int i = 10; i > 0; i-=1){
            System.out.println("i -->" + i); // 10 9 8 7 6 5 4 3 2 1
        }

        System.out.println("--------------------------");

        for(int i = 100; i > 50; i-=10){
            System.out.println("i -->" + i); // 100 90 80 70 60 50 
        }

        System.out.println("--------------------------");

        for(int i = 0; i < 10; ){
            System.out.println("计数器 -->" + i);
            i += 1;
        }

        System.out.println("--------------------------");

        for(int i = 0; i < 10; ){
            i += 1;
            System.out.println("计数器 -->" + i); // 1 2 3 4 5 6 7 8 9 10
        }

    }
}
/*
    循环语句和条件判断语句嵌套使用【for和if的嵌套】
*/
public class ForTest04
{
    public static void main(String[] args){

        // 找出1~100所有的奇数
        // 第一种方案:从1开始,每次递增2,这样每一个数字一定是奇数。
        for(int i = 1; i <= 100; i+=2){
            System.out.println("奇数-->" + i);
        }

        // 第二中方案:从1开始,以1递增,每一个数据都进行判断,判断标准是该数字对求余数
        for(int i = 1; i <= 100; i+=1){
            // 判断i是否为奇数,是奇数的时候输出
            // i % 2 == 0 // 偶数
            // i % 2 == 1 // 奇数
            // i % 2 != 0 // 奇数
            if(i % 2 == 1){
                System.out.println("奇数为:"+ i );
            }
        }
        // 以上两种方案,优先选择第一种方案:代码少,循环次数少,效率较高

    }
}
/*
    在前一个程序的基础之上,计算1~100所有奇数的和
        1 + 3 + 5 + 7 + 9 ....+ 99累加
    运算符 += 就是专门完成追加的。

*/
public class ForTest05
{
    public static void main(String[] args){

        // 定义一个变量【盒子】,初始值为0
        int mun = 0;
        for(int i=1;i<=100;i+=2){
            // i 一定是奇数
            // 累加求和
            // System.out.println(i);

            // mun存储的是最终求和的结果
            // 不能每一次执行到这里,都把求和结果归零。
            // 定义sum变量不能放到这里,因为这里是循环体
            // int sum = 0;

            mun = mun + i;

            // 输出语句放到这里表示每循环一次则输出一个数据
            // System.out.println("和:" + mun);
        }
        System.out.println("奇数的和为:" + mun);

        // ----------------------------------------------------
        // 归零
        int sum = 0;
        for(int i=1;i<=100;i++){
            if(i % 2 != 0){    // 是剪奇数
                sum += i;    // 则累加求和
            }
        }
        System.out.println("奇数的和为:" + sum);
    }
}
/*
    for循环嵌套for循环

*/
public class ForTest06
{
    public static void main(String[] args){
        for(int i=1;i<=10;i++){    // 共循环10次
            // 循环体中可以编写其他的控制语句
            // 控制语句可以嵌套使用
            // 控制语句可以是:if、if..else、switch、for、while、do..while
            // 即使循环体当中是一个for循环,不要将这个for特殊化,也是只一个普通的for循环
            // 只不过是一个一段符合java语法的代码
            // 内层循环,内层循环中的变量名和外层循环中的变量名不能重名。
            /*
            for(int i=100; ; ){
            }
            */

            System.out.println("第一层i -->"+i);

            // 这里是循环体,无论这个循环体 当中编写了什么样的代码,这堆代码也需要执行10遍。
            for(int j=0;j<3;j++){
                System.out.println("第二层j -->" + j);

                for(int k=0;k<3;k++){

                    System.out.println("第三层k -->" + k);
                }
            }
        
        }
    }
}
/*
    for循环嵌套
*/
public class ForTest07
{
    public static void main(String[] args){
        for(int i=1;i<10;i++){  // 循环10次

            System.out.println("Begin");
            // 这里代码片段执行10遍
            for(int j=0;j<1;j++){ // 循环1次,输出0
                System.out.println("j-->" + j);
            }
            System.out.println("Over");

        }

        for(int i=1;i<=5;i++){
            System.out.println("开始");
            for(int j=1;j<=5;j++){
                //System.out.println(j);
                System.out.println(i*j);
            }
            System.out.println("结束");
        }
        // 第一次结果
        /*
            结果:
                开始
                1
                2
                3
                4
                5
                结束
                ...
                5遍
        */

        // 第二次结果
            /*
            结果:
                开始
                1 1 * 1
                2 1 * 2
                3 1 * 3
                4 1 * 4
                5 1 * 5
                结束
                ...
                5遍
        */


    }
}
/*
    使用for循环输出九九乘法表
    1*1=1
    2*1=2 2*2=4
    3*1=3 3*2=6 3*3=9
*/
public class ForTest08
{
    public static void main(String[] args){
        for(int i = 1; i <= 9; i++){    // 外层循环9次
            // i 是行号
            // System.out.println(i);

            // 循环体当中的程序主要的任务是什么?
            // 处理当前行,将当前行中所有的项目全部输出
            for(int j = 1; j <= i; j++){
                System.out.print(j + " * " + i + " = " + (i*j) + "  ");
            }
            System.out.println("");
        }
    }
}
/*
    编写for循环找出1~100中所有的素数
    素数:又被称为质数,能够被1自身整除,不能被其它整除的数字成为素数。
    该题目主要掌握的知识点:
        for循环的使用
        for循环嵌套
        标记
        break
        统计
*/
public class ForTest01
{
    public static void main(String[] args){

        // 先编写程序,验证7这个数字是否为素数
        /*
            实现思路:
                7 / 1 【不需要】
                7 / 2 【7 % 2 != 0】
                7 / 3 【7 % 3 != 0】
                7 / 4 【7 % 4 != 0】
                7 / 5 【7 % 5 != 0】
                7 / 6 【7 % 6 != 0】
                7 / 7 【不需要】

        */

        /*
        int i = 8;
        boolean isSuShu = true;   // 默认将i看作一个素数【标记开发中比较常用】
        for(int j=2;j<i;j++){
            if(i % j == 0){
                // 非素数
                isSuShu = false;
                // 已经知道i是费素数,跳出循环.效率较高。
                break;
            }
        }
        System.out.println(isSuShu ? i + "素数:": i + "不是素数");
        */

        // 外部的for循环只负责取出每一个数字i
        for(int i=2; i<=100;i++){

            // 这里的这段代码只判断i是否为素数
            boolean isSuShu = true;
            for(int j=2;j<i;j++){
                if(i % j == 0){
                    isSuShu = false;
                    break;
                }
            }
            if(isSuShu){ // 是素数
                // System.out.println("是素数:"+i);
            }else{
                // System.out.println("不是素数:"+i);
            }
        }
        
        // 升级版【加入统计机制】
        int count = 0;
        for(int i=2; i<=100;i++){

            // 这里的这段代码只判断i是否为素数
            boolean isSuShu = true;
            for(int j=2;j<i;j++){
                if(i % j == 0){
                    isSuShu = false;
                    break;
                }
            }
            if(isSuShu){ // 是素数
                System.out.print(i + " ");
                count++;
                if(count % 9 == 0){
                    System.out.println();
                }
            }
        }
        
    }
}

 

循环结构之(while语句)

/*
    while循环语句:
        1、while循环的语法结构:
            while(布尔表达式){
                循环体;
            }

        2、while循环的执行原理:
            先判断布尔表达式的结果:
                - true
                    - 执行循环体
                        * 判断布尔表达式的结果:
                            * true
                                - 执行循环体
                                    * 判断布尔表达式的结果:
                            * false
                                - 循环结束
                - false

        3、while循环的循环次数:
            0 ~ N次
            注意:while循环的循环体可能执行次数为0次。

*/

public class WhileTest01
{
    public static void main(String[] args){
        // 死循环
        /*
        while(true){
            System.out.println("死循环");
        }
        */

        // 编译器检测到该程序永远都无法被执行,所以编译报错。
        // System.out.println("hello world!");

        int i = 10;
        int j = 3;
        while(i > j){
            System.out.println("呵呵");
        }
        System.out.println("hello world!");
    }
}
/*
    使用while循环输出1~10
*/
public class WhileTest01
{
    public static void main(String[] args){

        int i = 1;
        while(i<=10){
            System.out.println(i);
            i++;
        }
        System.out.println("end-->" + i);

        System.out.println("---------------------------------------------------------");
        // ------------------------------------------------------------
        int j = 10;
        while(j > 0){
            System.out.println(j--); // 10 9 8 7 6 5 4 3 2 1
            System.out.println("-->" +    xj); // 9 8 7 6 5 4 3 2 1 0
        }
        System.out.println("end j -->"+ j); // 10

        System.out.println("---------------------------------------------------------");
        // -----------------------------------------------------------

        int k = 10;
        while(k>=0){
            System.out.println(--k); // 9 8 7 6 5 4 3 2 1 0 -1
        }
            
        

    }
}

循环结构之(do...while语句)

/*
    do..while循环:
        1、do..while循环的语法结构:
            do{
                循环体;
            }while(布尔表达式);

        2、do..while循环的执行原理:
        3、do..while循环的执行次数:
            do..while循环的循环体代码片段执行次数是:1-N次【至少一次】

        4、使用do..while循环的注意事项:
            do..while循环语句最终有一个“分号”别丢了。
*/

public class DowhileTest01
{
    public static void main(String[] args){
        int i = 10;
        do{
            System.out.println(i);
        }while(i>100);

        System.out.println("------------------");

        while(i > 100){
            System.out.println("i --> " + i);
        }

        System.out.println("------------------");

        int a = 1;
        do{
            System.out.println(a); // 1 2 3 4 5 6 7 8 9 10
            a++;
        }while(a <= 10);
    }
}

控制循环语句之(break语句)

/*
    关于java控制语句当中的break语句:
        1、break是java语言当中的关键字,被翻译为“中断/折断”
        2、break + ";" 可以成为一个单独的完整的java语句:break;
        3、break语句使用在switch语句当中,用来终止switch的语句执行。
        4、break语句同样可以使用在循环语句当中,用来终止循环的执行
        5、break终止哪个循环呢?
        6、break; 语句使用在for,while,do..while循环语句当中用来跳出循环,终止循环的执行。
        因为当程序循环到某个条件的时候,后续的循环没必要执行了,再执行也是耗费资源,所以可以终止循环,这样可以提高程序的执行效率。
        7、以下以for循环为例讲解break;语句。
        8、在默认情况下:break语句终止的是离它最近的循环语句。当然也可以指定终止某个循环,需要给循环起名,采用这种语法:break 循环名称;
*/

public class BreakTest01{
    public static void main(String[] args){
        for(int i = 0; i<10; i++){
            if(i == 5){
                break;
            }
            System.out.println("i-->" + i);
        }

        // 这里的程序和以上的for循环无关。
        System.out.println("hello world");

        for(int j=0;j<3;j++){
            for(int i = 0; i<10; i++){
                if(i == 5){
                    break;  // 当前的break语句终止的是内层for循环,因为这个for离它最近。
                            // 这里的break语句不会影响到外层for循环
                }
                System.out.println("i-->" + i);
            }
        }

        System.out.println("-----------------------");

        // 以下语法使用较少
        // 给for循环起名叫for1
        for1:for(int j=0;j<3;j++){
            // 给for循环起名for2
            for2:for(int i = 0; i<10; i++){
                if(i == 5){
                    break for1; //终止for1循环
                }
                System.out.println("i-->" + i);
            }
        }
        System.out.println("hello world!");


    
    }
}

控制循环语句之(continue语句)

/*
    continue语句:
        1、continue表示:继续/go on/下一个
        2、continue; 也是一个continue关键字加一个分号构成一个单独的完整的java语句,主要出现循环语句当中用来控制循环的执行。
        3、break和continue的区别?
            break表示循环不执行了,跳出循环,终止循环
            continue表示终止当前”本次“循环,直接进入下一次循环继续执行。
        4、continue也有这样的语法:
            continue 循环名称; 【作为了解内容】
*/

public class ContinueTest01
{
    public static void main(String[] agrs){
        for(int i = 0; i<10; i++){
            if(i == 5){
                break;
            }
            System.out.println("i = " + i);  // 0 1 2 3 4
        }
        System.out.println("hello world!");
        
        for(int i = 0; i<10; i++){
            if(i == 5){
                continue;  // 只要这个语句执行,当前本次循环停止,直接进入下一次循环”继续“执行
            }
            System.out.println("i = " + i);  // 0 1 2 3 4 6 7 8 9
        }
        System.out.println("hello world!");



    }
}

 

 

 

 

 

 

 

 

 

 

 

/*关于java语言当中的if语句,属于选择结构,if语句又成为分支语句/条件控制语句:1、if语句的语法结构:四种编写方式第一种:if(布尔表达式){java语句;java语句;java语句;.....}第二种:if(布尔表达式){java语句;java语句;}else{java语句;java语句;}第三种:if(布尔表达式){java语句;java语句;}else if(布尔表达式){java语句;java语句;}else if(布尔表达式){java语句;java语句;}else if(布尔表达式){java语句;java语句;}....第四种:if(布尔表达式){java语句;java语句;}else if(布尔表达式){java语句;java语句;}else if(布尔表达式){java语句;java语句;}else{java语句;java语句;}2、重点:对于java中的if语句来说,只要有一个分支执行,整个if语句全部结束。
3、注意:以上的第二种编写方式喝第四种编写方式都带有else分支,这两种方式可以保证会有分支执行。
4、“所有的控制语句”都是可以嵌套使用的,只要合理嵌套就行。if(){if(){if(){}}}else{if(){}else{if(){if(){}}}}注意:嵌套使用的时候,代码格式要保证完美。【该缩进的时候必须缩进,大部分情况下使用大括号包围的需要缩进】
5、if语句的分支中只有一条java语句的话,大括号可以省略不写。if(true/false){一条java语句;}if(true/false) 一条java语句;
这种方式不推荐使用,别人这么写能看懂就行。



*/
public class ifTest01{public static void main(String[] agrs){// 需求:所在位置的五公里范围之内有肯德基的话,去KFC吃午饭// 公里数double distance = 6.0; // 单位KM// 判断语句if(distance < 5){System.out.println("去KFC吃开封菜!");}else{System.out.println("太远了不去了!");}
// 需求:假设系统给定一个考生的成绩,成绩可能带有小数点,成绩范围是0-100分,根据学生的成绩判断学生的成绩等级:// [90-100] A  [80-90] B  [70-80] C [60-70] D [0-60] E/*double grade = 99.5;if(grade >= 90){System.out.println("你的成绩是“A”!");}else if(grade >= 80){System.out.println("你的成绩是“B”!");}else if(grade >= 70){System.out.println("你的成绩是“C”!");}else if(grade >= 60){System.out.println("你的成绩是“D”!");}else{System.out.println("你的成绩不合格");}*/
double soore = 100;if(soore < 0 || soore > 100){System.out.println("对不起,你提供的考生成绩不合法!");}else if(soore >= 90){// 能够判断到这里说明成绩一定是[0-100]System.out.println("该考生的考试成绩等级是:A等级");}else if(soore >= 80){// 能够判断到这里说明成绩一定是小于90分的System.out.println("该考生的考试成绩等级是:B等级");}else if(soore >= 70){System.out.println("该考生的考试成绩等级是:C等级");}else if(soore >= 60){System.out.println("该考生的考试成绩等级是:D等级");}else{System.out.println("该考生的考试成绩等级是:E等级");}

}}

posted @ 2021-06-22 16:50  群临天下  阅读(197)  评论(0编辑  收藏  举报
/* 看板娘 */