2

 前两篇已经了解了Java语言基础,本篇开始Java的流程控制。流程控制对任何一门编程语言都是至关重要的,它提供了控制程序步骤的基本手段。

一、复合语句

  Java语言的复合语句是以整个块区为单位的语句,又称块语句。复合语句由“{”开始,“}”结束。

  对于复合语句,我们只需要知道,复合语句为局部变量创建了一个作用域,该作用域为程序的一部分,在该作用域中某个变量被创建并能够被使用,如果在某个变量的作用域外使用该变量,则会发生错误。并且复合语句中可以嵌套复合语句。

二、条件语句

  条件语句可根据不同的条件执行不同的语句。包括if条件语句与switch多分支语句。这是学习Java的一个基础与重点。

  1. if条件语句

  使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的“布尔表达式”,如果该表达式返回true,则执行其后的语句;若为false,则不执行if后的语句。可分为简单的if条件语句、if···else语句和if···else if多分支语句。

int a = 100;
if(a == 100) {
    System.out.println(a);
}

  如上方代码,{}之间为复合语句,if为条件语句,翻译过来就是如果a等于100,则输出a的值,否则不执行。

  如果if后只有一条语句,比如上述代码只有一条输出,可以不加{},但为了代码的可读性,以及防止代码过多出现不必要的错误,建议所有的if、else后都加上相应的{}。

  2. if···else语句

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

  if后的()内的表达式必须是boolean型的。如果为true,则执行if后的复合语句;如果为false,则执行else后的复合语句。

  如:

复制代码
 1 public class Getifelse {
 2 
 3     public static void main(String[] args) {
 4         int math = 80;        // 声明,数学成绩为80(及格)
 5         int english = 50;    // 声明,英语成绩为50(不及格)
 6         
 7         if(math >= 60) {    // if判断语句判断math是否大于等于60
 8             System.out.println("math has passed");
 9         } else {            // if条件不成立
10             System.out.println("math has not passed");
11         }
12         
13         if(english >= 60) {    // if判断语句判断english是否大于等于60
14             System.out.println("english has passed");
15         } else {            // if条件不成立
16             System.out.println("english has not passed");
17         }
18     }
19 
20 }
复制代码

  运行结果为:

  

  3. if···else if多分支语句

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

  如:

复制代码
 1 public class GetTerm {
 2 
 3     public static void main(String[] args) {
 4         int x = 40;
 5         
 6         if(x > 60) {
 7             System.out.println("x的值大于60");
 8         } else if (x > 30) {
 9             System.out.println("x的值大于30但小于60");
10         } else if (x > 0) {
11             System.out.println("x的值大于0但小于30");
12         } else {
13             System.out.println("x的值小于等于0");
14         }
15     }
16 
17 }
复制代码

  在本例中,由于x为40,条件x>60为false,程序向下执行判断;条件x>30为真,所以执行条件x>30后的程序块中的语句。输出结果如下:

  

  所以,if语句只执行条件为真的语句,其它语句都不会执行。

  4. switch多分支语句

  switch语句是一种比较简单明了的多选一的选择,在Java语言中,可以用switch语句将动作组织起来进行多选一。语法格式如下:

复制代码
switch(表达式)
{ 
 case 常量值1:
        语句块1
        [break;]
...
case 常量值n:
        语句块2
        [break;]
default:
        语句块 n+1;
        [break;]
}  
复制代码

  switch语句中表达式的值必须是整型或字符型,常量值1~n必须也是整型或字符型。

  简单说一下switch语句是怎么执行的(重点,初学的朋友要注意)。首先switch语句先计算表达式的值,如果表达式的值与case后的常量值相同,则执行该case后的若干个语句,直到遇到break语句为止。如果没有break,则继续执行下一case中的若干语句,直到遇到break为止。若没有一个常量的值与表达式的值相同,则执行default后面的语句。default语句可选,如果不存在default语句,而且switch语句中的表达式的值与任何case的常量值都不相同,则switch不做任何处理。并且,同一个switch语句,case的常量值必须互不相同。

  例:用switch语句打印出星期的英文单词

复制代码
 1 import java.util.Scanner;
 2 
 3 public class GetSwitch {
 4 
 5     public static void main(String[] args) {
 6         Scanner scan = new Scanner(System.in);
 7         System.out.print("请输入今天星期几:");
 8         int week = scan.nextInt();
 9         
10         switch (week) {
11         case 1:
12             System.out.println("Monday");
13             break;
14         case 2:
15             System.out.println("Tuesday");
16             break;
17         case 3:
18             System.out.println("Wednesday");
19             break;
20         case 4:
21             System.out.println("Thursday");
22             break;
23         case 5:
24             System.out.println("Friday");
25             break;
26         case 6:
27             System.out.println("Saturday");
28             break;
29         case 7:
30             System.out.println("Sunday");
31             break;
32         default:
33             System.out.println("Sorry,I don't konw");
34             break;
35         }
36     }
37 
38 }
复制代码

  这里Scanner是一个扫描器,用来输入的,使用时需在package下面用import语句导入Scanner类,我们可以在控制台中输入一个数字,然后用nextInt()来接收,这样week的值就是我们输入的数字,接下来执行switch语句,有7个case分别对应周一到周末,default在输入1~7以外的数据时执行。假设在控制台中输入1,则控制台会执行case 1后的语句,输出了Monday,结果如下:

  

  要注意的是case后的常量表达式的值可以为整数和字符,但不可以是实数后字符串,比如case 1.1,case “ok”都是非法的。

三、循环语句

  循环语句就是在满足一定条件的情况下反复执行某一个操作。包括while循环语句、do···while循环语句和for循环语句。

  1. while循环语句

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

  假设现在有1~10十个数字,我们要将它们相加求和,在学习while之前可能会直接用+运算符从1加到10,也就是1+2+3+4+5+6+7+8+9+10,但如果现在需要从1加到1万呢?10万?所以,我们要引入while循环来进行循环相加,如下:

复制代码
 1 public class GetSum {
 2 
 3     public static void main(String[] args) {
 4         int x = 1;            // 定义初值
 5         int sum = 0;        // 定义求和变量,用于存储相加后的结果
 6         
 7         while(x <= 10) {
 8             sum += x;        // 循环相加,也即    sum = sum + x;
 9             x++;
10         }
11         System.out.println(sum);
12     }
13 
14 }
posted @ 2022-02-27 21:57  Tim丶1  阅读(49)  评论(0)    收藏  举报