【Java概念】流程控制语句(2)

来源:互联网 发布:张玉宁维特斯数据 编辑:程序博客网 时间:2024/06/18 09:35

一、流程控制语句

if、if…else…

/*** 流程控制语句--选择语句: * if、if...else... * */@Testpublic void ifDemo(){    /*     * if语句格式:     * if(布尔表达式) 语句  或者     * if(布尔表达式) 语句1 else 语句2     * “语句”可以是一个简单的语句也可以是一个复杂的语句块。     */    int testVal = 1;    int res = test1(testVal);    System.out.println("res = "+res);}public static int test1(int testVal){    int result = 0;    int target = 10;    if( testVal > target ){        result = -1;    }else if( testVal < target ){        result = +1;    }else{        result = 0;    }    return result;}

switch…case…break…default

/** * 流程控制语句--选择语句: * switch...case...break...default   */@Testpublic void switchDemo(){    /*     * switch case 语句格式:     * switch(表达式值[整数选择因子]){     *  case 值1:语句1;break;     *  case 值2:语句2;break;     *  ....     *  case 值n:语句n;break;     *  default:语句m;break;     * }     * 当没有找到相符合的,则执行default语句。     */    /*随机生成26个字母并且判断是生成的哪个*/    char c = (char) (Math.random()*26 + 'a');    switch (c) {    case 'a':    case 'z':    case 'b':        System.out.println(" it's in azb .");        break;    case 'd':    case 'f':        System.out.println(" it's in df .");        break;    default:System.out.println("others... ");        break;    }    /*switch中的表达式值得类型有哪些?*/    //byte b = 1;    int b = 1;    //short b =1;    //String b = "1"; 【注意】:非整数类型不是switch中的表达式值类型    //double b =1;    //float b =1;    //boolean b = true;    switch(b){    case 2:System.out.println("it's 2 .");break;    case 1:System.out.println("it's 1 .");break;    default:System.out.println("others .");    }}

for

/** * 流程控制语句---循环语句: * for  */@Testpublic void forDemo(){    /*     * for语句格式:     * for(初始表达式;布尔表达式;步进)语句     *      * 关于for语句的说明:     * 1.for 循环在第一次反复之前要进行初始化。随后,它会进行条件测试,而且在每一次反复的时候,进行某种形式的“步进”。     * 2.无论初始表达式,布尔表达式,还是步进,都可以置空。---for( ; ; )语句     * 3.每次反复前,都要测试一下布尔表达式。---for循环条件是否成立     * 4.若获得的结果是false,就会继续执行紧跟在for 语句后面的那行代码。---跳出for循环     * 5.在每次循环的末尾,会计算一次步进。     * 6.只有for 循环才具备在控制表达式里定义变量的能力。对于其他任何条件或循环语句,都不可采用这种方法。     *      */    for(int i=0,j=10 ; i<j ; i++,j--){        System.out.println(i+" , "+j);    }    /*     * 增强for语句格式:     * for(数据类型  自定义变量:数据类型对应的对象)语句     */    String[] strs = new String[]{"abc","def","ghi"};    for(String str:strs){        System.out.println(str);    }    /*     * 逗号运算符:     * Java 里唯一用到逗号运算符的地方就是for 循环的控制表达式。     * 在控制表达式的初始化 和  步进控制可部分,我们使用一系列由逗号分隔的语句。而且那些语句均会独立执行。     */}

while、do…while

/** * 流程控制语句---循环语句: * while、do...while  */@Testpublic void whileDemo(){    /*     * while语句格式:     * while(布尔表达式)语句     * do while语句格式:     * do{语句}while(布尔表达式);     *      * 【注意】:while 和do-while 唯一的区别就是do-while 肯定会至少执行一次。     */    int i =2;    while(i<2){        System.out.println("1执行第 "+i+"次");//条件不成立不执行        i++;    }    int j =2;    do{        System.out.println("2执行第 "+j+"次");//条件不成立一开始会执行        j++;    }while(j<2);}

return

/** * 流程控制语句---结束语句,返回值语句: * return  */@Testpublic void returnDemo(){    /*     * return 的语法格式:     * 1.返回函数结果值。     * 2.结束当前函数体。     */    for(int i=0;i<10;i++){        if(i == 5){            System.out.println(" i = "+i);            return ;//此时的return结束了for循环            //System.out.println(i);此句无法编译通过        }        System.out.println(" ii = "+i);    }}

break、continue

/** * 流程控制语句---结束语句: * break、continue */@Testpublic void brConDemo(){    /*     * 1.Java 没有goto。     * 2.然而,在break 和continue 这两个关键字的身上,我们仍然能看出一些goto 的影子。     * 3.它并不属于一次跳转,而是中断循环语句的一种方法。     * 4.关于continue:结束当前循环,继续执行下次循环。     * 5.关于break:结束整个当前循环,直接跳到循环外部。     *      */    for(int i=0;i<10;i++){        for(int j=0;j<10;j++){            if(i == 2*j){                System.out.println(i+","+j);            }        }    }    /*关与标签、break、continue的执行原理:*/    int i = 0;    outer: // Can't have statements here    for(; true ;) { // infinite loop        inner: // Can't have statements here        for(; i < 10; i++) {            prt("i = " + i);            if(i == 2) {                prt("continue");                continue;            }            if(i == 3) {                prt("break");                i++; // Otherwise i never                // gets incremented.                break;            }            if(i == 7) {                prt("continue outer");                i++; // Otherwise i never                // gets incremented.                continue outer;            }            if(i == 8) {                prt("break outer");                break outer;            }            for(int k = 0; k < 5; k++) {                if(k == 3) {                    prt("continue inner");                    continue inner;                }            }        }    }    // Can't break or continue    // to labels here    }    static void prt(String s) {        System.out.println(s);    }/**运行结果:i = 0continue inneri = 1continue inneri = 2continuei = 3breaki = 4continue inneri = 5continue inneri = 6continue inneri = 7continue outeri = 8break outer*/
原创粉丝点击