Java基础语法(二)语法结构

Java 中的语法结构有四种

顺序结构:顾名思义,就是按照顺序执行语句
判断结构:if  
选择结构:switch
循环结构:for  while   do while
 
1. 判断结构
if语句有三种结构。
(1)if(条件表达式)
  {
    执行语句;
  }
(2)if(条件表达式)
  {
    执行语句;
  }
   else
  {
    执行语句;
  }
(3)if(条件表达式)
  {
    执行语句;
  }  
   else if(条件表达式)
  {
    执行语句;
  }
  ……
  else if(条件表达式)
  {
    执行语句;
  }
   else
  {
    执行语句;
  }
:三元运算符就是if语句的简写表达形式。可以简化代码。但是因为它是一个运算符,所以必须要有一个结果。所以功能范围不如if语句广。
例:
 1 /*
 2   使用if语句判断你要进男厕还是女厕
 3 */
 4 class TestIf
 5 {
 6     public static void main(String[]args)
 7     {    
 8          int x=5;
 9          if(x==1)
10              System.out.println("您是先生,请进男厕!");
11          else if(x==2)
12              System.out.println("您是女士,请进女厕!");
13          else
14              System.out.println("对不起,无法识别您的性别!");
15          System.out.println("\t\t\t\t\t————青衫出品!————");
16     }                           
17 }    
 1 /*
 2  需求:客户要求输入月份后能显示是哪个季节。
 3   3 4 5 春季;6 7 8 夏季;9 10 11 秋季;12 1 2冬季;
 4 */
 5 class  JiJie
 6 {
 7     public static void main(String[] args) 
 8     {
 9         //使用if条件语句设计
10         int x=11;
11         if(x<1||x>12)
12             System.out.println("没有这个月份,请重新输入!");
13         else if(x>=3&&x<=5)
14             System.out.println(x+"月份是春季。百花盛开,多出去走走,感受大自然的魅力!");
15         else if(x>=6&&x<=8)
16             System.out.println(x+"月份是夏季。烈日炎炎,请注意避暑!");
17         else if(x>=9&&x<=11)
18             System.out.println(x+"月份是秋季。秋高气爽,是旅游的好时节!");
19         else
20             System.out.println(x+"月份是冬季。请注意保暖!");
21         
22         System.out.println("\t\t\t\t\t\t————青衫出品!————");
23     
24     }
25 }

2.选择结构

(1)switch语句结构:

switch(表达式)

{

  case 取值1:

     执行语句;

    break;  

   case 取值2:

    执行语句;

    break;

    ……

  case 取值n:

    执行语句;

    break;

  default:

    执行语句;

    break;

}

(2)switch语句特点:

  a: switch语句中的类型只有四种:byte short  int  char

  b:case与default 编写代码没有顺序,default可以放在case前面。但是执行顺序仍然是先找第一个case,最后执行default语句。

  c:结束switch语句有两种情况:一种是遇到break;语句。另一种是switch语句执行完毕(也就是遇到switch中的大括号“}”)

  d:case语句有穿透性。也就是如果匹配的case语句没有break;那么执行完毕后会继续向下执行可以执行的语句,直到遇到break;或者大括号“}”。

         例:

 1 /*
 2    需求:客户输入后能显示对应的星期
 3 */
 4 class  Switch
 5 {
 6     public static void main(String[] args) 
 7     {
 8         int x=1;
 9         switch(x)
10         {
11             case 1:
12                 System.out.println(x+"星期一");
13             case 2:
14                 System.out.println(x+"星期二");
15             case 3:
16                 System.out.println(x+"星期三");
17                 break;
18             case 4:
19                 System.out.println(x+"星期四");
20                 break;
21             case 5:
22                 System.out.println(x+"星期五");
23                 break;
24             case 6:
25                 System.out.println(x+"星期六");
26                 break;
27             case 7:
28                 System.out.println(x+"星期日");
29                 break;
30             default:
31                 System.out.println("查询不到您输入的数字,请重新输入");
32         }
33 
34         
35     }
36 }

如上面代码,执行后还会继续向下执行,打印出来的结果就会变成下图,

直到遇到break;才会结束语句。这就是case的穿透性。

让我们做个练习,用switch结构来设计上面的输入月份显示季节。

 1 /*
 2  需求:客户要求输入月份后能显示是哪个季节。
 3   3 4 5 春季;6 7 8 夏季;9 10 11 秋季;12 1 2冬季;
 4 */
 5 class  JiJie
 6 {
 7     public static void main(String[] args) 
 8     {
 9         //使用switch语句设计
10         int a=5;
11         switch(a)
12         {
13             case 3:
14             case 4:
15             case 5:
16                 System.out.println(a+"月份是春季。百花盛开,多出去走走,感受大自然的魅力!");
17                 break;
18             case 6:
19             case 7:
20             case 8:
21                 System.out.println(a+"月份是夏季。烈日炎炎,请注意避暑!");
22                 break;
23             case 9:
24             case 10:
25             case 11:
26                 System.out.println(a+"月份是秋季。秋高气爽,是旅游的好时节!");
27                 break;
28             case 12:
29             case 1:
30             case 2:
31                 System.out.println(a+"月份是冬季。请注意保暖!");
32                 break;
33             default:
34                 System.out.println("没有这个月份,请重新输入!");
35 
36         }
37         
38         System.out.println("\t\t\t\t\t\t————青衫出品!————");
39     
40     }
41 }

 由上面的程序可以看到,使用if语句和switch都能完成客户的需求。那么该怎么选择呢?

      如果判断的具体数值不多,而且符合byte  short  int  char这四种类型。虽然两个语句都可以使用,建议使用switch语句,因为效率稍高。

  其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。

3. 循环结构

while循环

  while语句格式: while(条件表达式)

        {

          执行语句;

        }

 do while循环

 do while语句格式:

             do

             {

                 执行语句;

             }while(条件表达式);

while和do while的区别:

        while:先判断条件,只有条件满足才执行循环体。

        do while:先执行循环体,再判断条件,条件满足,再继续执行循环体。

简单一句话:do while:无论条件是否满足,循环体至少执行一次。

 注意:while中,while条件表达式后没有分号。do while中,while条件表达式后有分号。

for循环

for语句格式

  for(初始化表达式;循环条件表达式;循环后的操作表达式)

  {

    执行语句;

  }

for语句的特点:(1)初始化表达式只执行一次

        (2)条件不满足,循环就结束

        (3)表达式个数不唯一。如果表达式多的话,用逗号隔开 例:for(int x=1;x<4;System.out.println("m"),x++){ }

   for与while是可以互换的,它们的区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。  

    注:(1)什么时候使用循环结构呢?

    当要对某一条语句执行很多次的时候,就使用循环结构

    (2)最简单无限循环格式:while(true){}, for(;;){},对于for来讲,不写条件表达式默认就是ture。无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。

      (3)一定要注意哪些语句需要参与循环,哪些不需要。

    (4)累加思想:通过变量来记录住循环操作后的结果。(要在循环中才能使用这个思想)

    (5)计数器思想:通过变量来记录住数据状态的变化。(要在循环中才能使用这个思想)

 练习for语句

 1 /*
 2   需求:打印出1+2+……+10的和
 3   思考:1.通过for循环来把1到10遍历一次。
 4         2.需要定义一个变量来记录连个数相加的和。
 5 */
 6 class  TestSum
 7 {
 8     public static void main(String[] args) 
 9     {
10         int sum=0;
11         for(int i=1;i<=10;i++)
12         {
13             sum+=i;
14         }
15         System.out.println("1+2+……+10="+sum);
16     }
17 }

注:在上面这个程序中,我们运用到的思想就是累加思想。

 1 /*
 2   需求:打印出一百以内7的倍数的个数。
 3   思考:1.要先对一百以内的正整数进行遍历
 4         2.通过if语句对条件进行判断,把能整除7的数找到。
 5         3.定义一个变量来记录7的倍数的个数,每找到一个7的倍数。变量就自增一。
 6 */
 7 
 8 class  ForTest
 9 {
10     public static void main(String[] args) 
11     {
12         int count=0;
13         for(int x=1;x<100;x++)
14         {
15             if(x%7==0)
16                 count++;
17         }
18         System.out.println("一百以内7的倍数有"+count+"个");
19     }
20 }

在上面这个程序中,我们用到的就是计数器思想。

嵌套循环

 顾名思义,嵌套循环就是循环套循环。嵌套循环的格式:

 for(;;;)

{

  for(;;;)

  {

    执行语句;

  }

}

练习:

 1 /*
 2  打印出
 3     * 
 4    * *
 5   * * *
 6  * * * *
 7 * * * * *
 8 
 9               思路:要想打印出这个图形。需要找出规律。这个图形的规律是前面空格的个数。
10               为了便于观察,我们把空格用+表示这样就可以看出来规律了,
11               第一行是4个空格,第二行是3个空格,第三行是2个空格,第四行是1个空格,第五行就没有了。空格数随着行数的增加减少。
12               所以我们先把空格的循环写出来,然后再加上“* ”的循环。
13 ++++*
14 +++* *
15 ++* * *
16 +* * * *
17 * * * * *  
18 
19 */
20 class  ForFor
21 {
22     public static void main(String[] args) 
23     {
24         for(int x=0;x<5;x++)
25         {        //空格的循环
26             for (int k=x;k<5 ;k++ )
27             {
28                 System.out.print(" ");
29             }
30              //* 的循环
31             for(int y=0;y<=x;y++)
32             {
33                 System.out.print("* ");
34             }
35             System.out.println();//进行换行
36         }
37     }
38 }

  4.  其他流程控制语句——break,continue

        break(跳出)语句:应用范围:选择结构和循环结构。

        continue(继续)语句:应用于循环结构。

注:

        (1)这两个语句离开应用范围,存在是没有意义的。

        (2)这个两个语句单独存在时,下面都不可以有语句,因为执行不到。

        (3)continue语句是结束本次循环继续下次循环。

        (4)标号的出现,可以让这两个语句作用于指定的范围。只能用于循环结构。

posted on 2014-11-24 11:23  生命礼赞  阅读(237)  评论(0)    收藏  举报