java基础学习(三)控制执行流程

一、true和false
java不允许将一个数字作为布尔值使用,可以使用所有关系操作符(>、<、>=、<=、==、!=)构造条件语句,将其转换为一个布尔值。

二、if-else
其中 else 是可选的。else if只是一个else后面紧跟另一个新的if语句。

public static void main(String[] args){
        int x=55;
        if(x>30){
            System.out.println("x大于30");
        }else if (x>40){
            System.out.println("x大于40");
        }else{
            System.out.println("其他情况");
        }

        if(x>10){
            System.out.println("x大于10");
        }

        System.out.println("X的值:x="+x);
    }
结果:
x大于30
x大于10
X的值:x=55

说明:由 if [ else if | else ](可选)组成的语句中,如果满足其中一条,那剩下的语句不管是否满足,都不再继续执行,而是直接执行语句后面的剩余部分程序。

三、循环语句/迭代语句
使用while、do-while、for 用来控制循环。语句重复执行,直到布尔值为false为止。

public static void main(String[] args){
        while(condition()){
            System.out.println("循环while语句");
        }
    }
public static boolean condition(){
        boolean result=Math.random()<0.99f;
        return result;
    }
结果:
循环while语句
循环while语句
循环while语句
循环while语句
循环while语句

while循环语句,满足条件后,才执行循环体里的语句。其中Math.random()方法产生0和1之间(包括0,不包括1)的double类型的随机数。

public static void main(String[]args){
        int i=1;
        do{
            System.out.println("i的值,i="+i);
            i++;
        }while(i<5);
    }
结果:
i的值,i=1
i的值,i=2
i的值,i=3
i的值,i=4

do-while语句至少执行一次,即便表达式第一次计算为false。
注意,不要忘记do while()后面的分号。

public static void main(String[] args) {
        for(char c='a';c<128;c++){
            System.out.println("c="+c);
        }
    }
结果:
c=a
c=b
c=c
c=d
c=e
c=f

for循环在迭代之前要进行初始化,进行条件测试,每次迭代结束后,进行步进。
初始化,布尔表达式、步进都可以为空。
例子中,变量c在for循环中被定义的,因此它的作用域就是for控制的表达式范围内。

逗号分隔符(,)可以用来分隔函数的不同参数。
逗号操作符(,)在for语句中,可以在初始化和步进中使用。这些语句均会独立执行
通过使用逗号操作符,可以在for语句内定义多个变量,但是它们必须具有相同的类型。

 public static void main(String[] args) {
        for(int i=1,j=i+10;i<5;i++,j+=2){
            System.out.println("i="+i+"  ,j="+j);
        }
    }
结果:
i=1  ,j=11
i=2  ,j=13
i=3  ,j=15
i=4  ,j=17

forEach语法:不必创建int变量去对访问项构成的序列进行计数,foreach将自动产生每一项。

        int[] array={132,32,3244,32232};
        for(int a:array){
            System.out.println("a="+a);
        }
结果:
a=132
a=32
a=3244
a=32232

任何返回一个数组的方法都可以使用foreach。还可以用于Iterable对象、集合对象。foreach不能在序列中步进。除非提前在数组中步进。

四、Return关键字

两方面的作用:
a、指定方法返回值
b、导致当前的方法退出,不再执行方法后面的语句,而不是return后面的语句。

 public static void main(String[] args) {
        int x=50;
        if(x>30){
            return;
        }
        System.out.println("x大于30");
    }
//结果没有打印语句。该语句不会被执行。

如果在返回void的方法中没有return语句,那么在该方法的结尾会有一个隐式的return。
一个方法声明将返回非void的其他东西,那么必须确保每一条代码路径都将返回一个值。

//如果没有else语句,那在末尾也要加一个return返回值。
public static String getName(int age){
        if(age>10){
            return "good";
        }else if(age>20) {
            return "bad";
        }
        return "test";
    }

//如果有else语句,末尾不需要return语句
public static String getName(int age){
        if(age>10){
            return "good";
        }else{
            return "bad";
        }
    }

五、break 和continue 关键字
这两个关键字可以控制循环的流程:
break用于强行退出循环,不执行循环中剩余的语句。
continue停止执行当前的迭代,然后退回循环起始处,开始下一次迭代。

public static void main(String[] args) {
        for(int i=0;i<100;i++){
            if(i==44) break;
            if(i%9!=0) continue;
            System.out.print(i+"  ");
        }
    }
结果:
0  9  18  27  36  

六、switch语句
它是实现多路选择的方法,但是要求选择因子必须是int或char那样的整数值。case中使用单引号引起的字符也会产生用于比较的整数值。

public static void main(String[] args) {
        int x=30;
        switch(x){
            case 20:x++;System.out.println("x="+x); break;
            case 30:x++;System.out.println("x="+x);
            case 10:x++;System.out.println("x="+x);
            default:
                System.out.println("x="+x);
        }
    }
//结果,继续执行后面的语句直达结尾或遇到break
x=31
x=32
x=32

选择因子可以是一个能够产生整数值的表达式,表达式的结果能够与每种case相比较。case的值也是能够产生整数值的表达式。

如果case是以break结尾,那可使执行流程跳转至switch主体的结尾,跳出switch语句,执行程序后面的语句。

如果没有break结尾,程序会继续执行后面的case语句,而不管是否满足条件,直到遇到一个break或 default结尾。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值