码迷,mamicode.com
首页 > 其他好文 > 详细

控制语句

时间:2020-06-06 00:53:42      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:一段   有一个   练习   整数   if语句   常见   main   hello   编译   

1 怎么接收用户键盘输入?
    java.util.Scanner s = new java.util.Scanner(System.in);
    // 接收整数
    int i = s.nextInt();
    // 接收字符串
    String str = s.next();
 
2 控制语句
    2.1 控制语句的出现可以让我们的程序具有逻辑性,条理性,可以使用控制语句来实现一个业务了。
 
    2.2 控制语句包括几类?
        3类:
        选择语句
        循环语句
        转向语句
 
    2.3 选择语句也可以叫做分支语句
        if语句
        switch语句
 
    2.4 循环语句,主要循环反复的去执行某段特定的代码块。
        for循环
        while循环
        do..while..循环
    
        什么是循环语句,为什么要是用这种语句?
            因为在现实世界当中,有很多事情都需要反复/重复的去做。
            对应到程序当中,如果有一块代码需要重复执行,此时为了减少代码量,我们使用循环语句。
            
    2.5 转向语句
        break
        continue
        return(目前先不需要学习,后面讲方法的时候会使用,到时候再说)
 
3 选择语句/分支语句 if
 
 
if选择语句:
---------------------------------------------------------↓ if选择语句 ↓----------------------------------------------------------
/*
    if语句的语法结构记忆运行原理?
        if语句是分支语句,也可以叫做条件语句。
        if语句的语法格式:
            第一种写法:
                if(不是随便写的,必须是布尔表达式){
                    java语句;
                }
            这里的大括号{}叫做一个分支。
            if 这个单词翻译为如果,所以又叫做条件语句。
            该语法的执行原理是:
                如果布尔表达式的结果是true,则执行大括号中的程序,否则大括号中代码不执行。

            第二种写法:
                if(布尔表达式){
                    java语句;
                }else{
                    java语句;
                }
                执行原理:如果布尔表达式的结果是true,则执行分支1,分支2不执行。
                如果布尔表达式的结果是false,分支1不执行,执行分支2
                以上的这个语句可以保证一定会有一个分支执行。
                else表示其他
                        
            第三种写法:
                if(布尔表达式1){
                    java语句;
                }else if(布尔表达式2){
                    java语句;
                }else if(布尔表达式3){
                    java语句;
                }else if(布尔表达式4){
                    java语句;
                }......
                
                以上if语句的执行原理?
                    先判断布尔表达式1,如果布尔表示1为true,则执行分支1,然后if语句结束了。
                    当布尔表达式1结果是false,那么会继续判断布尔表达式2的结果,如果布尔表达式的结果是true,则执行分支2,整个if就结束了。
                    从上往下以此判断,主要看第一个true发生在哪个分支上。
                    第一个true对应的分支执行,只要一个分支执行,整个if结束。
                    
            第四种写法:
                if(布尔表达式1){
                    java语句;
                }else if(布尔表达式2){
                    java语句;
                }else if(布尔表达式3){
                    java语句;
                }else if(布尔表达式4){
                    java语句;
                }else{
                    java语句;
                }
                
                以上条件没有一个成立的,则执行else。
                
        注意:1 对于if语句来说,在任何情况下只能有1个分支执行,不可能存在2个或者更多个分支执行。
                        if语句中只要有1分分支执行了,整个if语句就结束了(对于1个完成的if语句来说的)。
                    
                    2 以上4种语法机制中,凡是带有else分支的,一定可以保证会有一个分支执行。
                        以上4种当中,第一种和第三种没有else分支,这样的语句可能会导致最后一个分支都不执行。其中第二种和第四种肯定会有1个分支执行,
                        因为他们有else。
                        
                    3 当分支当中java语句只有一条的时候,大括号可以省略不写,但为了可读性,最好不好省略。
                        有的程序员在编写代码的时候可能会故意将大括号省略,你需要可以看懂。
                        
                    4 控制语句和控制语句之间是可以嵌套的。但是嵌套的时候大家最好一个语句一个语句进行分析,不要冗杂在一起分析。
                        小窍门:分析外面if语句的时候,里面的这个if语句可以看做是普通的一堆java代码。
            
*/
public class IfTest01{
    public static void main(String[] args){
        
        //定义一个布尔类型的变量,表示性别。
        boolean sex = false;
        
        // 业务:当sex为true时表示男,为false的时候表示女。
        /*
        if (sex == true) { //是关系运算符,不是赋值运算符, == 是用来判断是否相等的  不具备赋值作用
            System.out.println(‘男‘);    
        }else{
            System.out.println(‘女‘);    
        }
        */
        // 改良代码。
        if (sex) {
            System.out.println(‘男‘);    
        }else{
            System.out.println(‘女‘);    
        }
        
        // 可以在进一步改良
        // 可以使用三目运算符
        sex = true;
        System.out.println(sex?‘男‘:‘女‘);
        
        // 代码可以这样写吗?
        // () 小括号当中最终取的值是sex变量的值
        // 而sex是布尔类型,所以这个可以通过。
        // 这种写法太ne了,不要这么写,这样你会让else分支不在有价值。
        /*sex = false;
        if (sex = true) {
            System.out.println(‘男‘);    
        }else{
            // 虽然这种语法可以,但是会导致else分支永远不能执行。
            System.out.println(‘女‘);    
        }*/
        
        // 省略了大括号的写法
        // 当分支中有一条java语句的话,大括号可以省略。
        if (sex)
            System.out.println(‘男‘);    
        else
            System.out.println(‘女‘);    
        
        // 判断一下程序会出现问题吗?会出什么问题?第几行代码会报错?
        // IfTest01.java:121: 错误: 有 ‘if‘, 但是没有 ‘else‘
        if (sex)
            System.out.println(‘男‘);    
            System.out.println("Hello World");    
        /*else //这一行编译报错,因为else缺少if
            System.out.println(‘女‘);*/
        
    }
}

 

/*
    业务要求:
        1 从键盘上接收一个人的年龄。
        2 年两要求为[0-150],其他值表示非法,需要提示非法信息。
        3 根据人的年龄动态的判断这个人属于生命的哪个阶段?
            [0-5] 婴幼儿
            [6-10] 少儿
            [11-18] 少年
            [19-35] 青年
            [36-55] 中年
            [56-150] 老年
        4 请使用if语句完成以上的业务逻辑
*/
public class IfTest02{
    public static void main(String[] args){
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.print("请输入年龄:");
        int age = s.nextInt();
        //System.out.println("测试以下,您输入的年龄是:" + age);
        /*对于初学者来说可能代码会写成这样,这是正常的。
         代码的经验需要一步步的积累,慢慢的代码就会越来越漂亮了
         需要时间,需要积累代码经验。最好的代码是:最少的代码量,最高的效率*/
        /*if(age >= 0 && age <= 5){
            System.out.println("这一个婴幼儿的年龄");
        } else if (age >= 6 && age <= 10) {
            System.out.println("这一个少儿的年龄");
        } else if (age >= 11 && age <= 18) {
            System.out.println("这一个少年的年龄");
        } else if (age >= 19 && age <= 35) {
            System.out.println("这一个青年的年龄");
        } else if (age >= 36 && age <= 55) {
            System.out.println("这一个中年的年龄");
        } else if (age >= 59 && age <= 150) {
            System.out.println("这一个老年的年龄");
        } else {
            System.out.println("这一个非法的年龄");
        }*/
        
        // 嵌套的if else语句
        /*if(age < 0 || age > 150){
            System.out.println("对不起,年龄值不合法");
        } else {
            if (age <= 5){
                System.out.println("婴幼儿");
            }else if(age <= 10){
                System.out.println("少儿");
            }else if(age <= 10){
                System.out.println("少年");
            }else if(age <= 18){
                System.out.println("青年");
            }else if(age <= 35){
                System.out.println("中年");
            }else{
                System.out.println("老年");
            }
        }*/
        
        String str = "老年"; // 字符串变量默认值是"老年"
        
        if(age < 0 || age > 150){
            System.out.println("这一个非法的年龄");
            // 既然不合法,你就别让程序继续往下执行了,怎么终止程序呢?
            return;
        } else if(age <= 5){
            System.out.println("这一个婴儿的年龄");
        } else if (age <= 10) {
            System.out.println("这一个少儿的年龄");
        } else if (age <= 18) {
            System.out.println("这一个少年的年龄");
        } else if (age <= 35) {
            System.out.println("这一个青年的年龄");
        } else if (age <= 55) {
            System.out.println("这一个中年的年龄");
        } else if (age <= 150) {
            System.out.println("这一个老年的年龄");
        }
        System.out.println(str);
    }    
}

 

/*
    题目:
        1 系统接收一个学生的考试成绩,根据考试成绩输出成绩的等级。
        
        2 等级:
            优 : [90~100]
            良 : [80~90]
            中 : [70~80]
            及格 : [60~70]
            不及格 : [0~60]
        
        3 要求乘积是一个合法的数字,成绩必须在[0-100]之间,成绩可能带有小数。
*/
public class IfTest03{
    public static void main(String[] args){
        java.util.Scanner s = new java.util.Scanner(System.in);
        //String Achievement = s.next();
        //double d = Double.parseDouble(Achievement);
        //System.out.print("这个学生的成绩是:" + Achievement);
        
        double Achievement = s.nextDouble();
        
        if(Achievement < 0 || Achievement > 100){
            System.out.println("您输入的成绩为非法成绩");
        }else if(Achievement < 60){
            System.out.println("您输入的成绩为不及格");
        }else if(Achievement < 70){
            System.out.println("您输入的成绩为及格");
        }else if(Achievement < 80){
            System.out.println("您输入的成绩为中");
        }else if(Achievement < 90){
            System.out.println("您输入的成绩为良");
        }else{
            System.out.println("您输入的成绩为优");
        }
    }    
}

 

/*
    题目:
        业务:
            从键盘上接收天气的信息:
                1表示:雨天
                0表示:晴天
            同时从键盘上接收性别的信息:
                1表示:男
                0表示:女
            业务要求:
                当天气是雨天的时候:
                    男的:打一把大黑伞
                    女的:打一把小花伞
                当天其实晴天的时候:
                    男的:直接走起,出去玩耍
                    女的:擦点防晒霜,出去玩耍
                
                需要使用if语句以及嵌套的方式展现这个业务。
                
                可以再程序的开始,接收两个数据,一个数据是天气,一个数据是性别。
                然后将这两个数据保存到变量中。
*/
public class IfTest04{
    public static void main(String[] args){
        java.util.Scanner s = new java.util.Scanner(System.in);
        
        System.out.print("请输入对应的天气:");
        int weather = s.nextInt();
        
        System.out.print("请输入对应的性别:");
        int sex = s.nextInt();
        
        if(weather == 0){
            if(sex == 1){
                System.out.println("晴天了、男孩直接走起,出去玩耍");
            }else if(sex == 0){
                System.out.println("晴天了、女孩擦点防晒霜,出去玩耍");
            }else{
                System.out.println("您输入的性别有误,请输入正确的性别");
            }
        }else if(weather == 1){
            if(sex == 1){
                System.out.println("下雨啦、男孩打了一把大黑伞");
            }else if(sex == 0){
                System.out.println("下雨了、女孩打了一把小花伞");
            }else{
                System.out.println("您输入的性别有误,请输入正确的性别");
            }
        }else{
            System.out.println("您输入的天气有误,请输入正确的天气。");
        }
    }    
}

 

switch选择语句:
---------------------------------------------------------↓ switch选择语句 ↓----------------------------------------------------------
 
/*
    switch语句:
        1 switch语句也是选择语句,也可以叫做分支语句。
        2 switch语句的语法格式
            switch(值){
                case 值1:
                    Java语句;
                    Java语句;
                    break;
                case 值2:
                    Java语句;
                    Java语句;
                    break;
                case 值3:
                    Java语句;
                    Java语句;
                    break;
                default:
                    Java语句;
            }
            
            以上是一个完整的switch语句
                其中:break语句不是必须的
                            default分支也不是必须的
                
            switch语句支持的值有哪些?
                支持int类型以及String类型
                但一定要注意JDK的版本,在jdk8之前不支持String类型,只支持int。
                在jdk8之后,switch语句开始支持字符串String类型。
                
                switch语句本质上只支持int和String,但是byte、short、char也可以使用在switch语句当中,
                因为byte、short、char可以进行自动类型转换。
                
                switch语句中“值”与“值1”、“值2”比较的时候,会使用“==”进行比较。
            
        3 switch语句的执行原理
            拿“值”与“值1”进行比较,如果相同,则执行该分支中的Java语句,
            然后遇到“break;”语句,switch语句就结束了。
            如果“值”与“值1”不相等,会继续拿“值”与“值2”进行比较,如果相同,则执行该分支中的java语句,然后遇到break;语句,switch结束。
            
            注意:如果分支执行了,但是分支最后没有“break;”,那么会发生case穿透现象。
            
            所有的case都没有匹配成功,那么default分支会执行。
*/

public class SwitchTest01{
    public static void main(String[] args){
        
        // 分析这个程序是否能够编译通过?
        // switch只支持int和String类型。
        // 错误: 不兼容的类型: 从long转换到int可能会有损失
        /*long x = 100L;
        switch(x){
            
        }*/
        
        // 以下这些都是可以的,因为他可以接收String和int类型。
        /*long x = (int)100L;
        switch(x){
            
        }*/
        
        /*byte b = 100;
        switch(b){
                
        }*/
        
        /*short c = 100;
        switch(c){
                
        }*/
        
        /*char d = ‘a‘;
            // 相当于 int i = c;
        switch(d){ //实际上这里相当于97
                
        }
        
        // switch支持String字符串类型(jdk1.8版本以上支持)。
        /*switch("abc"){
        
        }*/
        
        // 写一个完整的switch语句
        // 接收键盘输入,根据输入的数字来判断星期几。
        // 0 星期天
        // 1 星期一
        // ......
        
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.print("请输入您要输入的数字:");
        int i = s.nextInt();
        
        /*switch(i){
            case 0:
                System.out.println("星期天");
                break;
            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;
            default:
                System.out.println("您输入的天气数字有误!请重新输入!");
        }*/
        
        // case穿透现象
        /*switch(i){
            case 0:
                System.out.println("星期天");
                break;
            case 1:
                System.out.println("星期一");
                // break; // 这里注释掉了哦  没有了break; 所以他就回继续向下执行,直到有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;
            default:
                System.out.println("您输入的天气数字有误!请重新输入!");
        }*/
        
        // 关于default语句,当所有的case都没有匹配上的时候,执行default语句。
        /*switch(i){
            case 0:
                System.out.println("星期天");
                break;
            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;
            default:
                System.out.println("您输入的天气数字有误!请重新输入!");*/
        
        // 关于case合并的问题
        switch(i){
            case 0: case 1: case 2:
                System.out.println("星期天");
                break;
            case 3: case 4: case 5:
                System.out.println("星期三");
                break;
            case 6:
                System.out.println("星期六");
                break;
            default:
                System.out.println("您输入的天气数字有误!请重新输入!");
        }
    }
}

 

/*
    题目:
        1 系统接收一个学生的考试成绩,根据考试成绩输出成绩的等级。
        
        2 等级:
            优 : [90~100]
            良 : [80~90]
            中 : [70~80]
            及格 : [60~70]
            不及格 : [0~60]
        
        3 要求乘积是一个合法的数字,成绩必须在[0-100]之间,成绩可能带有小数。
        
        必须使用switch语句来完成,你该怎么办?
*/
public class SwitchTest02{
    public static void main(String[] args){
        //提示用户输入学生程序
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.print("请输入学生的成绩:");
        double score = s.nextDouble();
        
        if(score < 0 || score > 100){
            System.out.println("您输入的学生成绩有误,再见!");
            return;
        }
        
        int grade = (int)(score / 10);// 假设说这个学生的成绩是95 那么95 / 10 = 9.5 强转成int是9
        switch(grade){
            case 9: case 10:
                System.out.println("该学生的成绩是优");
                break;
            case 8:
                System.out.println("该学生的成绩是良");
                break;
            case 7:
                System.out.println("该学生的成绩是中");
                break;
            case 6:
                System.out.println("该学生的成绩是及格");
                break;
            case 0: case 1: case 2: case 3: case 4: case 5:
                System.out.println("该学生的成绩是不及格");
                break;
            default:
                System.out.println("您输入的学生成绩不合法!再见!");
        }
    }
}

 

for循环语句:
---------------------------------------------------------↓ for循环语句 ↓----------------------------------------------------------
/*
    为什么要使用循环?
    循环语句的出现就是为了解决代码的复用性。
    
*/
public class ForTset01{
    public static void main(String[] args){
        // 要求在控制台上输出100个100
        // 什么时候可以考虑使用循环呢?相同的代码重复出现的时候,可以使用循环语句。
        int number = 100;
        for(int i = 0; i < 100; i++){
            System.out.println(number);
        }
    }
}

 

/*
    1 for循环的语法机制以及运行原理?
        语法机制:
            for(初始化表达式;条件表达式;更新表达式){
                循环体; // 循环体由java语句构成
                java语句;
                java语句;
                java语句;
                java语句;
                java语句;
                ....
            }
            
            注意:
                第一:初始化表达式祖先执行,并且在整个循环中只只执行一次。
                第二:条件表达式结果必须是一个布尔类型,也就是说true或者false。
            
            执行原理:
                先执行初始化表达式,并且初始化表达式只执行1次。
                然后判断条件表达式的结果,如果条件表达式结果为true,则执行循环体。
                循环体结束之后,执行更新表达式。
                更新完之后,在判断条件表达式结果,如果还是true,继续执行循环体。
                直到更新表达式之行结束之后,在判断条件时,条件为false,for循环终止。
                
            更新表达式的作用是:控制循环的次数,换句话说,更新表达式会更新某个变量的值,
            这样条件表达式的结果才有可能从true变成false、从而终止for循环的执行。如果缺失更新表达式,很有可能变成死循环。
*/
public class ForTest02{
    public static void main(String[] args){
        // 最简练的for循环怎么写?
        // 初始化表达式、条件表达式、更新表达式其实都不是必须的
        
        /* for(;;){
            System.out.println("死循环");
        }*/
        
        // 最常见的for循环
        // 循环10次,输出0-9
        /*
            i = 0
            i = 1
            i = 2
            i = 3
            i = 4
            i = 5
            i = 6
            i = 7
            i = 8
            i = 9
            
            强调一下:对于以下的这个for循环,其中int i = 0;
            最先执行,并且只执行一次,而且i变量属于for循环的局部变量,for循环结束之后i的内存就释放了。
            这个i变量只能在for循环中使用。
            这个i变量属于for循环域。在main方法中没有办法直接使用。
        */
        /*for(int i = 0 ; i < 10 ; i++){
            System.out.println("i = " + i);
        }*/
        
        // i变量的作用域就扩大了。
        int i = 0;
        for( ; i < 10 ; i++){
            System.out.println("i --> " + i);
        }
        
        System.out.println("这里的i可以访问吗? i = " + i);// 10
        
        // 变形
        for(int k = 1 ; k <= 10 ; k++){
            System.out.println("k --> " + k); // 1 2 3 ... 10
        }
        
        // 变形
        for(int k = 1 ; k <= 10 ;){
            System.out.println("k --> " + k); // 1 2 3 ... 10
             k++;
        }
        
        // 变形
        for(int k = 1 ; k <= 10 ;){
            k++;
            System.out.println("value --> " + k); // 2 3 4 ... 10  11
        }
    }
}

 

 

public class ForTest03{
    public static void main(String[] args){
        // for的其他形式。
        for(int i = 10; i > 0 ; i--){
            System.out.println("i = " + i);// 10 9 8 7 6 5 4 3 2 1
        }    
        
        // 变形
        for(int i = 0; i < 10 ; i += 2){
            System.out.println("value1 = " + i);
        }
        
        // 死循环
        // 注意: 1对3 求余数, 结果还是1
        /*for(int i = 100; i > 0 ; i %= 3){
            System.out.println("value2 = " + i);
        }*/
        
        
    }
}

 

/*
    使用for循环实现1~100所有奇数求和
    至少给出两种解决方案
*/
// 我自己写出来的方案
public class ForTest04{
    public static void main(String[] args){
        int k = 0;
        for(int i = 1; i <= 100; i += 2){
            k = i + k;
        }
        
        System.out.println("1~100的奇数之和是:" + k);
        
        /*
            第一种方案
            思路:先找出1~100所有的奇数,然后在考虑求和的事儿。
            第一步:先从1取到100,一个数字一个数字的取出来。
            第二步:既然可以得到每一个数字,那么我们进一步判断这个数字是否为奇数,
            奇数对2求余数,结果都是1
        */
        int sum = 0;
        for(int i = 1; i <= 100; i++){
            // int sum = 0; //不能在这个循环体中声明,这样会导致“计算器归0”
            // for循环中嵌套了if语句。
            if(i % 2 ==1){ // i为奇数的条件
                sum += i;
            }
        }
        
        System.out.println("1~100所有的奇数求和结果是:" + sum);
        
    }
}

 

/*
    1 所有合法的控制语句都可以嵌套使用
    2 for循环嵌套一个for循环执行原理是什么?
        提示一下:大家不要因为for循环中嵌套了一个for循环就感觉这个程序比较特殊,实际上,大家可以这样看待:
        for(){
            //在分析外层for循环的时候,把里面的for就当做一段普通的java语句/代码。
            for(){
            
            }
        }
*/
public class ForTest05{
    public static void main(String[] args){
        
        //单层for循环
        for(int i = 0; i < 10; i++){
            System.out.println("i = " + i);
        }
        
        for(int k = 0; k < 2; k++){//循环两次
            System.out.println("k = " + k);
        }
        
        /*
        输出结果
        k ---> = 0
        i---> = 0
        i---> = 1
        i---> = 2
        i---> = 3
        i---> = 4
        i---> = 5
        i---> = 6
        i---> = 7
        i---> = 8
        i---> = 9
        k ---> = 1
        i---> = 0
        i---> = 1
        i---> = 2
        i---> = 3
        i---> = 4
        i---> = 5
        i---> = 6
        i---> = 7
        i---> = 8
        i---> = 9
        */
        /*for(int k = 0; k < 2; k++){//循环两次
            System.out.println("k ---> = " + k);
            // 外面循环一次,他就循环10次(因为外面的for控制里面的for)    因为外面循环了两次,所以他就循环两个10次
            for(int i = 0; i < 10; i++){//循环10次   
                System.out.println("i---> = " + i);
            }
        }/*
        
        /*
        // 第一遍
        for(int i = 0; i < 10; i++){//循环10次    所以他就循环两个10次
                System.out.println("i == > " + i);
        }
        
        // 第二遍
        for(int i = 0; i < 10; i++){//循环10次    所以他就循环两个10次
                System.out.println("i == > " + i);
        }
        */
        int i = 0;
        
        for(int k = 0; k < 2; k++){
            for(; i < 10; i++){
                System.out.println("k ---> = " + k);
                System.out.println("value ---> = " + i);
            }
        }
        
    }
}

 

/*
    利用for循环实现99乘法表
*/
public class ForTest06{
    public static void main(String[] args){
        
        for(int i = 1 ; i <= 9 ; i++){
            for(int k = 1 ; k <= i ; k ++){
                System.out.print(k + "*" + i + "=" + i * k + " ");
            }
            System.out.println();
        }
        
    }    
}

public class ForTest07{
    public static void main(String[] args) {
        //冒泡排序算法
        int[] numbers=new int[]{1,5,8,2,3,9,4};
        int i,j;
        for(i=0;i<numbers.length-1;i++){
            for(j=0;j<numbers.length-1-i;j++){
                if(numbers[j]>numbers[j+1]){
                    int temp=numbers[j];
                    numbers[j]=numbers[j+1];
                    numbers[j+1]=temp;
                }
            }
        }
        System.out.println("从小到大排序后的结果是:");
        for(i=0;i<numbers.length;i++)
            System.out.print(numbers[i]+" ");
    }
}

 

while循环语句:
---------------------------------------------------------↓ while循环语句 ↓----------------------------------------------------------
 
/*
    while循环:
        1 while循环的语法机制以及执行原理
            语法机制:
                while(布尔表达式){
                    循环体;
                }
                
                执行原理:
                    判断布尔表达式的结果,如果为true就执行循环体,循环体结束之后,再次判断布尔表达式的结果,
                    如果还是true,继续执行循环体,直到布尔表达式结果为false,while循环结束。
            
        2 while循环有没有可能循环次数为0次?
            可能。当while的布尔表达式为false,那么他的循环次数就为0次
            while循环的循环次数是:0 ~ n 次
*/

public class WhileTest01{
    public static void main(String[] args){
        //死循环
        /*while(true){
            System.out.println("死循环");
        }*/
        
        // 本质上,while循环和for循环原理是相同的。
        /*
            for(初始化表达式;布尔表达式;更新表达式){
                循环体;
            }
            
            初始化表达式;
            while(布尔表达式){
                循环体;
                更新表达式;
            }
            
            if switch 属于分支语句属于选择语句
            for while do..while..这些都是循环语句。
            可以正常互相嵌套
        */
        
        /*int i = 0;
        while(i < 10){
            System.out.println("while ---> " + i);
            i++;
        }
        
        
        for(int k = 0 ; k < 10 ; k++){
            System.out.println("for --> " + k);
        }*/
        
        int i = 0;
        while(i < 10){
            i++;
            System.out.println("while ---> " + i);// 1 2 3 .. 9 10
        }
        
        for(int k = 0 ; k < 10 ; ){
            k++;
            System.out.println("for --> " + k);// 1 2 3 .. 9 10
        }
        
    }
}

 

do..while循环语句:
---------------------------------------------------------↓ do..while循环语句 ↓----------------------------------------------------------
/*
    do..while循环语句的执行原理以及语法机制:
        语法机制:
            do{
                循环体
            }while(布尔表达式);
            
            注意:do..while循环最后的时候不要漏掉“分号”
            
            执行原理:
                先执行循环体中的代码,执行一次循环体之后,判断布尔表达式的结果,如果为true,则继续自行循环体,如果为false循环结束。
            
            对于do..while循环来说,循环体至少执行一次。循环体的执行次数是1~n次。
            对于while循环来说,循环体的执行次数是:0~n次。
*/
public class DoWhileTest01{
    public static void main(String[] args){
        
        /*int i = 0;
        do{
            System.out.println(i);
            i++;
        }while(i<10);*/
        
        /*int i = 0;
        do{
            System.out.println(i++);
        }while(i<10);*/
        
        int i = 0;
        do{
            System.out.println(++i);
        }while(i<10);
        
    }
}

 

break转向语句:
---------------------------------------------------------↓ break转向语句 ↓----------------------------------------------------------
/*
    break;语句
        1 break;语句比较特殊,特殊在break语句是一个单词成为一个完整的java语句。
         另外 continue也是这样,他俩都是一个单词成为一条语句。
        2 break 翻译为折断、弄断的意思
        
        3 break;语句可以用在哪里呢?
            用在两个地方,其他位置不行
            第一个位置:switch语句当中,用来终止switch语句的执行。
                用在switch语句当中,用来终止switch语句的执行。
                
            第二个位置:break;语句用在循环语句当中,用来终止循环的执行。
                用在for当中
                用在while当中
                用在do..while当中
                
        4 以下程序主要是以for循环为例学习break转向语句
        
        5 break;语句的执行并不会让整个方法结束,break;语句主要是用来终止离他最近的那个循环语句。
        
        6 怎么让break;语句终止指定循环呢?
            第一步: 你需要给循环起一个名字,例如:
                a:for(){
                    b:for(){
                    
                    }
                }
            第二步:终止:break a;    
            
*/
public class BreakTest01{
    public static void main(String[] args){
        
        /*for(int i = 0 ; i < 10 ; i++){
            
            if(i == 5){
                // break;语句会让离他最近的循环终止结束掉
                break;// break;终止的不是if,不是针对if的,而是针对离他最近的循环。
            }
            System.out.println("i == " + i);
        }
        System.out.println("Hello World!");*/
        
        /*for(int k = 0 ; k < 2; k++){
            for(int i = 0 ; i < 10 ; i++){
            
            if(i == 5){
                // break;语句会让离他最近的循环终止结束掉
                break;// break;终止的不是if,不是针对if的,而是针对离他最近的循环。
            }
            System.out.println("i == " + i);
            }
        }*/
        
        // 以下讲解的内容,以后开发很少用。不要紧张
        // 这种语法很少用,了解以下即可。
        a:for(int k = 0 ; k < 2; k++){
            b:for(int i = 0 ; i < 10 ; i++){
            
            if(i == 5){
                break a;// 这个a就代表你让谁结束,谁就结束
            }
            System.out.println("i == " + i);
            }
        }
        
    }
}

 

continue转向语句:
---------------------------------------------------------↓ continue转向语句 ↓----------------------------------------------------------
 
/*
    continue;语句:
        1 continue翻译为:继续
        2 continue语句和break语句要对比着学习。
        3 continue语句的作用是:
            终止当前“本次”循环,直接进入下一次循环继续执行。
            for(){
                if(){ // 当这个条件成立时,执行continue语句
                    // 结束本次循环,直接跳到下一次循环
                    continue; //当这个continue语句执行时,continue下面的代码不执行,直接进入下一次循环。
                }
                
                // 以上的continue一旦执行,那么下面的代码本次都不会执行,直接执行下一次循环。
                code1;
                code2;
                code3;
                code4;
                code5;
            }
            
        4 continue语句后面可以指定循环吗?
            可以的。
            这里就不再讲了,自己测试一下。
*/
public class ContinueTest01{
    public static void main(String[] args){
        
        System.out.println("--------break-----------");
        
        for(int i = 0 ; i < 10 ; i++){
            
            if(i == 5) {
                break;    
            }
            System.out.println(i);
        }
        
        System.out.println("--------continue-----------");
        
        for(int i = 0 ; i < 10 ; i++){
            
            if(i == 5) {
                continue;
            }
            System.out.println(i);
        }
    }    
}

 

猴子与桃子的练习:
---------------------------------------------------------↓ 猴子与桃子的练习 ↓----------------------------------------------------------
/*
    题目,猴子吃桃子
        猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个,
        以后每天早上都吃了前一天剩下的一半零一个,到了第十天早上想在吃时,只剩下一个桃子。求第一天共摘了多少个桃子。
*/
public class Test01{
    public static void main(String[] args){
        
        int day = 9;
        int TaoZi = 1;
        System.out.println("第10天有1个桃子");
        for(int i = day ; i > 0 ; i--){
            TaoZi = (TaoZi + 1) * 2;
            System.out.println("第" + day-- +"天有"+ TaoZi +"个桃子");
        }
    }
}

 

 

控制语句

标签:一段   有一个   练习   整数   if语句   常见   main   hello   编译   

原文地址:https://www.cnblogs.com/xlwu/p/13052962.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!