zoukankan      html  css  js  c++  java
  • 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等级");}

    }}

  • 相关阅读:
    Error creating bean with name 'eurekaAutoServiceRegistration'
    CentOS 下 安装 nginx 执行配置命令 ./configure 报错
    linux解压war包的命令
    idea中如何将一个普通项目转换为maven项目(或者导入Maven项目后没反应)
    IDEA报 : Lombok Requires Annotation Processing
    IDEA中如何添加RunDashboard
    @Controller 和 @RestController 的区别
    @RequestMapping 和 @GetMapping @PostMapping 区别
    批量提取指定文件夹下的所有文件名称及其路径
    TortoiseSVN的bin目录下面没有svn.exe
  • 原文地址:https://www.cnblogs.com/Axianba/p/14919277.html
Copyright © 2011-2022 走看看