控制流程

控制流程

1. Java的if条件语句

if

if (表达式1){
    表达式2;
}

如果表达式1的值是true,那就执行表达式2

public class HelloWorld{
    public static void main(String[] args){
        boolean b = true;
        //如果成立就打印yes
        if(b){
            System.out.println("yes");
        }
    }
}

多表达式与一个表达式

public class HelloWorld{
    public static void main(String[] args){
        boolean b = true;
        //如果有多个表达式,必须使用大括号括起来
        if(b){
            System.out.println("yes1");
            System.out.println("yes2");
            System.out.println("yes3");
        }

        //不然的话,多个表达式只有第一个表达式受if控制
        if(b)
            System.out.println("yes1");
            System.out.println("yes2");
            System.out.println("yes3");

        //如果只有一个表达式,可以写大括号,也可也不写
        if(b)
            System.out.println("yes1");

    }
}

if使用过程中可能遇到的坑

public class HelloWorld {
    public static void main(String[] args) {
        boolean b = false;
        if (b);   //加了分号,不管怎么样,都会执行打印
            System.out.println("yes");
    }
}

if else

else代表不成立的情况

public class HelloWorld{
    public static void main(String[] args){
        boolean b = false;
        if (b)
            System.out.println("Yes");
        else
            System.out.println("No");
    }
}

else if 多条件判断

public class HelloWorld {
    public static void main(String[] args) {

        //如果只使用 if,会执行4次判断
        int i = 2;
        if (i==1)
            System.out.println(1);
        if (i==2)
            System.out.println(2);
        if (i==3)
            System.out.println(3);
        if (i==4)
            System.out.println(4);

        //如果使用else if, 一旦在18行,判断成立, 20行和22行的判断就不会执行了,节约了运算资源
        if (i==1)
            System.out.println(1);
        else if (i==2)
            System.out.println(2);
        else if (i==3)
            System.out.println(3);
        else if (i==4)
            System.out.println(4);     

    }
}

小练习(闰年)

import java.util.Scanner;
public class HelloWorld{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        int a = s.nextInt();
        if(a % 4 == 0 & a % 100 != 0 || a% 400 == 0)
            System.out.println("yes");
        else
            System.out.println("no");
    }
}

小练习(BMI) 貌似还有bug

import java.util.Scanner;
public class Helloworld{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入身高(m)");
        double height = sc.nextDouble();
        System.out.println("请输入体重(kg)");
        double weight = sc.nextDouble();
        double BMI = weight/(height * height);
        System.out.println("您的BMI" + BMI);
        if (BMI < 20)
            System.out.println("太瘦了");
        else if (BMI >= 20 || BMI< 30)
            System.out.println("正好");
        else
            System.out.println("胖了");
    }
}

2. Java的switch语句

switch语句相当于if else的另一种表达方式

switch可以使用byte、short、int、char、String、enum

注意:

每一个表达式结束,都应该有一个break;

String在Java1.7之前是不支持的,从1.7之后开始支持String,编译后是把String转化为hash值,其实还是整数

enum是枚举类型

public class HelloWorld {
    public static void main(String[] args) {

        //如果使用if else
        int day = 5;
        if (day==1)
            System.out.println("星期一");

        else if (day==2)
            System.out.println("星期二");
        else if (day==3)
            System.out.println("星期三");
        else if (day==4)
            System.out.println("星期四");
        else if (day==5)
            System.out.println("星期五");
        else if (day==6)
            System.out.println("星期六");
        else if (day==7)
            System.out.println("星期天");
        else
            System.out.println("这个是什么鬼?");

        //如果使用switch
        switch(day){
            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("这个是什么鬼?");
        }

    }
}

3. Java的while语句

条件为true时,重复执行

只要while中的表达式成立,就会不断地循环执行

public class HelloWorld{
    pbulic static void main(String[] args){

        //打印0~4
        int i = 0;
        while(i<5){
            System.out.println(i);
            i++;
        }
    }
}

条件为true时,重复执行,至少会执行一次

public class HelloWorld{
    public static void main(String[] args){
        //打印0~4
        //于while地区别是,无论是都成立,先执行一次,再进行判断
        int i =0;
        do{
            System.out.println(i);
            i++;
        }while(i<5);
    }
}

小练习(阶乘)

import java.util.Scanner;

public class HelloWorld{
    public static void main(String[] args){
        Scanner number = new Scanner(System.in);
        System.out.println("请输入你想阶乘的最后一个数字:");
        int jiecheng = number.nextInt();
        int i = 1;
        int mul = 1;
        do{
            mul = mul * i;
            i++;
        }while(i <= jiecheng);
        System.out.println(mul);                 
    }
}

4. Java的for循环

for循环和while一样,只是表达方式不一样

public class HelloWorld{
    public static void main(String[] args){
        //使用while打印0~4
        int i = 0;
        while(i<5){
            System.out.println(i);
            i++;
        }
        //使用for循环打印0~4
        for(int j = 0; j<5;j++){
            System.out.println(j);
        }
    }
}

小练习(乞丐要钱)

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("天朝有一个乞丐");
        for(int i = 1;i<=10;i++){
            System.out.println("第"+(i)+"天要了"+(int)Math.pow(2,i)+"块钱")
        }
    }
}

Java的continue语句

contiune 继续下一次循环

continue

public class HelloWorld{
    public static void main(String[] args){
        //打印单数
        for (int j = 0; j<10; j++){
            if(j%2==0)
                continue;
            System.out.println(j);
        }
    }
}

小练习(忽略3或者5的倍数)

public class HelloWorld{
    public static void main(String[] args){
        for (int i = 0; i <= 100; i++){
            if (i%3==0 || i%5==0)  //如果是3或者5的倍数就跳过
                continue;
            System.out.println(i);
        }
    }
}

Java的break语句

直接结束当前for循环

public class HelloWorld{
    public static void main(String[] args){
        //打印单数
        for(int j = 0; j < 10; j++){
            if(0 == j%2)
                break;
            System.out.println(j);
        }
    }
}

Java如何结束外部for循环

break是结束当前循环

public class HelloWorld{
    public static void main(String[] args){
        //打印单数
        for(i = 0; i<10;i++){
            for(int j = 0; j<10;j++){
                System.out.println(i+":"+j);
                if(0==j%2)
                    break;//如果是双数,结束当前循环
            }
        }
    }
}

使用boolean变量结束外部循环

借助boolean变量结束外部循环

需要中内部循环中修改这个变量值

每次内部循环结束后,都是在外部循环中判断这个变量的值

public class HelloWorld{
    public static void main(String[] args){
        boolean breakout = false;
        for(int i = 0; i< 100;i++){
            for(int j = 0;j<10;j++){
                System.out.println(i+":"+j);
                if(0==j %2){
                    breakout = true; //将外部循环标记设置为true
                    break;
                }
            }
            if(breakout) //判断是否终止外部循环
                break;
        }
    }
}

使用标签结束外部循环

在外部循环的前一行,加上标签

在break的时候使用该标签

技能达到结束外部循环的效果

public class HelloWorld{
    public static void main(String[] args){
        //打印单数
        outloop: // outloop这个标识是可以自定义的
        for(int i = 0;i < 10;i ++){
            for(int j = 0;j<10;j++){
                System.out.println(i+":"+j);
                if(0==j%2)
                    break outloop;//如果是双数,结束外部循环
            }

        }
    }
}

综合练习

黄金分割点

水仙花数

小学算术题

暂无评论

发送评论 编辑评论


				
上一篇
下一篇