浪潮優派培訓java筆記:第4章 流程控制

第4章 流程控制

4.1.1 if-else語句語法

public class IfElse {

    public static void main(Stringargs[]) {

       boolean bl = true;

       if (bl)

           System.out.println("true");

       else

           System.out.println("false");

    }

}

如果向上面這樣只有兩個分支,且有返回值的情況。則有一種更簡潔的寫法:bl?true:false

如果在方法中,直接returnbl。消除代碼冗餘。

4.1.2 switch語句語法

switch(exp){    //表達式exp的返回值必須是下述幾種類型之一:int, byte, char, short;

     case const1:    //case子句中的值constant必須是常量,且所有case子句中的值應是不同的;

       statement1;

       break;   

     case const2:

       statement2;

       break;

           … …

     case constN:

       statementN;

       break;

     [default:       // default子句是可選的,default不一定被執行到。但程序應該有個最終出口。

       statement_dafault;

       break;]

}  

    break語句用來在執行完一個case分支後使程序跳出switch語句塊,即終止switch語句的執行(在一些特殊情況下,多個不同的case值要執行一組相同的操作,這時可以不用break)。

    規範:每種情況最好都有break;

default最好有。

    案例分析:

int i = 2;

       switch (i) {

       default:

           System.out.println("default"); 

       case 1:

           System.out.println("111");

           break;

       case 2:

           System.out.println("222");

           break;

i=2時輸出222

i=3時則輸出default

             111

       上述案例的default語句沒有break,所有會繼續運行下面的程序並且不用匹配case,直到遇到break而終止。

       如果沒有合適的選項,則認爲default是唯一的出口,然後直到遇到第一個break跳出爲止。

4.1.3       while語句

while (條件判斷) {

        執行語句

}

       “條件判斷”表示任何一個布爾表達式。當“條件判斷”爲true時,進入while,否則退出while。

4.1.4       do-while語句

do{

        執行語句

} while (條件判斷);  //注意用分號結尾!

       首先執行一次,再進行條件判斷;

       沒有循環體的while和do-while語句示例:

    while(i==j){}

    while(i==j);

    do;while(i==j);

 

4.1.6for語句

for(初始化表達式;條件表達式;操作表達式)

{

        執行語句

}

       當執行語句只有一條時,大括號可以省略;

       可以這麼寫:for( ; ; ) ,相當於一個無限循環(dead loop);

    【for循環的趣味應用】編寫打印下列圖形的程序:

(1)                        (2)                          (3)

   #                     * * * * * * *                        $      

   # #                     * * * * *                       $ $ $

   # # #                     * * *                       $ $ $ $ $

   # # # #                     *                          $ $ $

                                                          $

[解答]:

public class Test_17_1 {      

       public static voidmain(String[] args) {       

              int i, j;

              for (i = 1; i<= 4; i++) {

                     for (j =1; j <= i; j++) {

                           System.out.print("#");

                     }

                    System.out.println();

              }

       }

}

 

public class Test_17_2 {

       public static voidmain(String[] args) {

              int i, j, k;

              for (i = 0; i< 4; i++) {

                     for (k =0; k < i; k++) {

                           System.out.print(" ");

                     }

                     for (j =0; j <= 6 - 2 * i; j++)

                           System.out.print("*");

                    System.out.println();

              }

       }

}

 

public class Test_17_2 {

    public static void main(String[]args) {

       int i = 0, blank, j,star, input = 5;// input是輸入的行數

       String s = "";

       for (i = 0; i <input; i++) {

           blank =Math.abs(i - input / 2);

           for (j = 1; j <=blank; j++)

              s += " ";

           star =input - 2 * blank;

           for (j = 1; j <=star; j++)

              s += "$";

           s += "\n";

       }

       System.out.print(s);

    }

}

 

2)    使用for循環打印出99乘法表。最終的輸出結果如下:

1*1=1 

2*1=2  2*2=4 

3*1=3  3*2=6  3*3=9 

4*1=4  4*2=8  4*3=12 4*4=16

5*1=5  5*2=10 5*3=15 5*4=20 5*5=25

6*1=6  6*2=12 6*3=18 6*4=24 6*5=30 6*6=36

7*1=7  7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49

8*1=8  8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64

9*1=9  9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

參考代碼

public class MultiTable {

    public static void main(String[]args) {

       for (int i = 1; i <=9;i++) {

           for (int j = 1; j <=i;j++) {            

              System.out.print(i+"*"+j+"="+i*j+"\t");//"/t"是水平製表

           }

           System.out.println();

       }

    }

}

 

 用30以內的隨機整數給一個數組賦值,要求賦值後數組中的每一個數都不能重複。

【參考源碼】

public class RandomArr {

    public static void main(String[] args) {

       int a[]=new int [10];

       a[0]=(int) (Math.random()*30+1);

       for (int i = 1; i < a.length; i++) {

           a[i]=(int) (Math.random()*30+1);

           for (int j = 0; j < i; j++) {

              while(a[i]==a[j]) {

                  a[i]=(int) (Math.random()*30+1);

                  j=-1;

                  break;           

              }

           }

       }     

       for (int i = 0; i < a.length; i++) {

           System.out.print(a[i]+"");

       }     

    }

}

 

4.1.7 break語句

    break語句用於終止某個語句塊的執行

             {   ……      

                   break;

                   ……

              }

4.1.8 continue語句

       continue語句用來結束本次循環,跳過循環體中下面尚未執行的語句,接着進行終止條件的判斷,以決定是否繼續循環。

       與break語句不同,continue語句是結束本次循環,並不結束整個循環。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章