Java语言基础(四)-复合语句

1、复合语句

java语言的复合语句是以整个块区为单位的语句,所以又称块语句,能够用在任何一个单独语句可以用到的地方,并且在复合语句中还可以嵌套复合语句。复合语句有大括号“{”开始,”}”结束。复合语句中的每个语句都是从上到下被执行的。
在使用复合语句是要注意,复合语句为局部变量创建了一个作用域,该作用域为程序的一部分,在该作用域中某个变量被创建并能够被使用。但是如果在某个变量的作用域外使用该变量,则会发生错误。

2、条件语句

条件语句可根据不同的条件执行不同的语句。条件语句包括if条件语句与switch多分支语句。

2.1 if条件语句

if条件语句是一个重要的编程语句,用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。

2.1.1 简单的if条件语句
if(布尔表达式){
    语句序列
}
  • 布尔表达式:必要参数,表示最后返回的结果必须是一个布尔值。可以是一个单纯的布尔变量或常量,也可以是使用关系或布尔运算符的表达式。
  • 语句序列:可选参数,可以是一条或多条语句,当表达式的值为true时执行这些语句,若语句序列中仅有一条语句,则可以省略条件语句中的“{}”。
public class ConditionalStatements_if {
    /*
     * 简单的if条件语句
     */
    public static void main(String[] args) {
        int a = 101;
        if (a == 100) {
            System.out.println("a的值是100");
        }
        if(a!=100){
            System.out.println("a的值不为100");
        }
    }
}
2.1.2 if···else语句

if···else语句是条件语句中最常用的一种形式,它会针对某种条件有选择的作出处理。通常表现为“如果满足某条件,就进行某种处理,否则就进行另一种处理”。

if(表达式){
    若干语句
}else{
    若干语句
}

if后面的“()”内的表达式的值必须是boolean类型的,如果表达式的值为true,则执行紧跟if语句的复合语句;若表达式的值为false,则执行else后面的复合语句。

public static void main(String[] args) {

        /*
         * if···else语句;
         */
        int English = 100;
        if (English>=60) {
            System.out.println("英语成绩及格了");
        } else {
            System.out.println("英语成绩未及格");
        }
        }
2.1.3 if···else if 语句

if···else if 多分支语句用于针对某一事件的多种情况进行处理,通常不表现为“如果满足某种条件,就进行某种处理,否则如果满足另一种条件则执行另一种处理”。

if(条件表达式1){
    语句序列1else if(条件表达式2){
    语句序列2
}
……
else if(条件表达式n){
    语句序列n
}
  • 条件表达式1~条件表达式n:必要参数,可以有多个表达式组成,但最后返回的结果一定要为boolean类型。
  • 语句序列:可以是一跳或多条语句,当条件表达式1的值为true是,执行语句序列1;当条件表达式2的值为true是,执行语句序列2,以此类推。
public static void main(String[] args) {

        /*
         * if···else多分支语句;
         */
         int number = 50;
         if (number>10) {
            System.out.println("number的值大于10");
        } else if (number<100) {
            System.out.println("number的值小于100");
        }else{
            System.out.println("number输入错误");
        }
        }

2.2 switch多分支语句

在变成中一个常见的问题就是检测一个变量是否符合某个条件,如果不符合,在用另一个值来检测,以此类推。

switch(表达式){
    case 常量值1:
        语句块1
        breakcase 常量值2:
        语句块2
        break;
        ……
    case 常量值n:
        语句块n
        breakdefault:
        语句块n+1break;
}

switch语句中表达式的值必须是整型、字符型或字符串类型,常量值1~n必须也是整型、字符型或字符串类型。switch语句首先计算表达式的值,如果表达式的值和某个case后面的常量值相同,则执行该case语句后的若干个语句知道遇到break语句为止。此时如果该case语句中没有break语句,将继续执行后面case中的若干个语句,至于遇见break语句为止。若没有一个常量的值与表达式的值相同,则执行default后面的语句。default语句为可选的,如果它不存在,且switch语句中表达式的值不予任何case的常量值相同,switch则不做任何处理。

public class BranchStatements {
    /*
     * switch多分支语句;
     */
    public static void main(String[] args) {
        int week = 2;
        switch (week) {
        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:
            //break;
        }
    }
}

3、循环语句

循环语句就是在满足一定条件的情况下反复执行某一个操作。java中的有三种常用的循环语句,分别为while循环语句、do···while循环语句和for循环语句。

3.1 while循环语句

while语句也称条件判断语句,他的循环方式为利用一个条件来控制是否要继续反复执行这个语句。

while(条件表达式){
执行语句
}

当表达式的返回值为true是,则执行“{}”中的语句,当执行完“{}”中的语句后,重新判断条件表达式的返回值,直到表达式的返回值为false时,退出循环。

public class LoopStatement_while {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int i = 1;
        int j = 0;
        while (i <= 10) {
            j = j + i;
            i++;
        }
        System.out.println(j);
    }
}

3.2 do···while循环语句

do···while循环语句与while循环语句类似,他们之间的区别是while语句为先判断条件是否成立,在执行循环,而do···while循环语句则先执行一次循环后,在判断条件是否成立。也就是说do···while循环语句中“{}”最高i部分的程序段至少要被执行一次。

do{
执行语句
}while(条件表达式);
public class LoopStatement_do_while {
    /*
     * do···while 循环语句;
     */
    public static void mian(String[] args) {
        int a = 100;
        do{
            System.out.println("成功;");
            a--;
        }while(a == 60);
    }

}

3.3 for循环语句

一个for循环可以用来重复执行某条语句,知道某个条件得到满足。

3.3.1 for语句
for(表达式1;表达式2;表达式3){
    语句序列
}
  • 表达式1:初始化表达式,负责完成变量的初始化;
  • 表达式2:循环条件表达式,值为boolean型的表达式,指定循环条件;
  • 表达式3:循环后操作表达式,负责修整变量,改变循环条件;

在执行for循环时,首先执行表达式1,完成某一变量的初始化工作;下一步判断表达式2的值,若表达式2的值为true,则进入循环;在执行完循环后紧接着计算表达式3,这部分通常是增加或减少循环控制变量的一个表达式,到此第一轮循环结束。第二轮循环直接从计算表达式2开始,若表达式2返回true,则继续循环,反之则跳出整个for语句。

public class LoopStatement_for {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        /*
         * for循环语句;
         */
        int number = 0;
        for (int i = 1; i <= 100; i++) {
            number = number + i;
        }
        System.out.println("1~100之间的和为:"+number);
    }
}

4、循环控制

循环控制包含两个方面内容,一方面控制循环变量的变化方式,另一方便是控制循环的跳转。控制循环的跳转需要用到break(中断循环)和continue(执行下一次循环)两个关键字。

4.1 break语句

使用break语句可以跳出switch结构。在循环中,同样可以用break语句跳出当前循环,从而中断当前循环。

public class CycleControl_break {

    public static void main(String[] args) {
        /*
         * break 控制循环语句
         */
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 6; j++) {
                if (j == 4) {
                    break;
                }
                System.out.println("i=" + i + "j=" + j);
            }
        }
    }

如果想让break跳出外层循环,可以使用“标签”功能。

标签名:循环体{
    break标签名;
}
  • 标签名:任意标识符;
  • 循环体:任意循环语句;
  • break标签名:break跳出指定的循环体,此循环体的标签名必须与break的标签名一致。带有标签的break可以指定跳出的循环,这个循环可以是内层循环,也可以是外层循环。
public class CycleControl_break {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        /*
         * 带有标签名的break;
         */
        loop:for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 6; j++) {
            if (j == 4) {
                break loop;
            }
            System.out.println("i=" + i + "j=" + j);
        }
}

4.2 continue语句

continue语句是针对break语句的补充,continue不是立即跳出循环体,而是跳过本次循环结束前的语句,回到循环的条件测试部分,重新开始执行循环。在for循环语句中遇到continue后,首先执行循环的增量部分,然后进行条件测试。在while和do···while循环中,continue语句使控制直接回到条件测试部分。

public class CycleControl_continue {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        /*
         * continue控制循环语句;
         */
        for (int i = 1; i < 20; i++) {
            if (i % 2 == 0) {
                continue;
            }
            System.out.println("1~20之间的奇数有" + i);
        }
    }
}

continue同样可以支持“标签”功能;

标签名:循环体{
    continue标签名;
}
  • 标签名:任意标识符;
  • 循环体:任意循环语句;
  • continue标签名:continue跳出指定的循环体,此循环体的标签名必须与continue的标签名一致。
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值