跳到主要內容

Java-Java流程控制(1)



Java流程控制-1:


---------------------------------------------


--------------------------------------------

本節會介紹Java程式中的流程控制程式,基本認識架構,我們可以自己決定執行程式的順序,先執行A在執行B之類等等。以下程式碼只呈現部分程式。
本節關鍵字有:if-elseswitch-casefor

()if-else流程控制:此流程架構的關鍵英文字為if( )elseelse if( )」,括號內會有一個判斷值(條件),如果為正確,就會執行if的區域內程式碼,若沒有則會執行else區域內的程式碼,程式可以有多個else。這流程會判斷該在哪個區域執行程式碼。以下架構有三個判斷:(程式設計師可依照需求自己創造if-else)

if(判斷條件)
{
        //if1 內的區域程式碼
        if(判斷條件)
{
        //if2內的區域程式碼
        }
}else if(判斷條件){
        //elseif3 內的區域程式碼
}else {
        //else 內的區域程式碼
}
1.         if( )else if( )括號中判斷條件成立的話,會傳回布林值true並執行if內的程式區塊,反之則傳回false,程式碼忽略if區域程式碼,流程往下執行,尋找有無else的程式區域。
int  money = 0;
if( money = 0 ) {
        //程式碼
//上述程式碼不合法,因為”money=0”並不會回傳布林值。
//(除非條件設定為money ==0)

boolean Iamhandsome = true;
if(Iamhandsome = false) {
        //程式碼
} 
//合法,該判斷式會判斷為false,不執行if的區域程式碼;

2.         精簡式流程:if架構沒有{  }」,下面創立一個int型態的變數mymoney,假設為我的錢,會執行if內的程式碼。
int mymoney = 1,000,000;
if(mymoney > 0)
        System.out.print(“你有錢。”);  //只能有一列程式碼
else
        System.out.print(“你沒有錢。”);  //下方可再多程式碼,但不屬於if-else

3.         階層式流程控制:就是多種判斷條件的結合架構。
if()
else if()
else if()
else



()switch-case選擇流程敘述:此架構關鍵英文字為switch( )casedefaultbreak,與if-else一樣也有括號判斷條件式,但判斷條件式的值必須是charbyteshortint…等基本資料型別,不可為參考型別(ArrayString…)

1.         我們會發現若有多個條件式,使用elseif 很費時,浪費很多執行時間,這時可以利用switch-case
(1)     default若都沒有符合的值,就會執行此區域程式,但不一定要存在。
(2)     break跳出程式,可以不用存在,但正常狀況下流程判斷完需要跳出程式。
(3)     所以一般此流程架構為switch+case,這兩個關鍵英文字結合,會接續判斷case的值。
(4)     以下為一範例:(程式碼會顯示為:這才是唷!!)
char  test = ‘A’;
switch(test) {
        case 1:
                System.out.println(“是這個嗎?”);
                break;
        case ‘A’:  //若改為case ‘B’,程式碼會執行default
                System.out.println(“這才是唷!!”);
                break;
        default :
                System.out.println(“都沒有符合的耶!!”);
                break;  }

2.         switch(expression) 中只能存放一個參數(argument)

3.         default關鍵字可單獨存在,若有也只能有一個

4.         case的比對值不可重複出現,每個case的比對值必須唯一。



()for-loop迴圈敘述for-loopwhile-loopdo-whilefor-each皆屬於重複性控制迴圈(iteration loop),意思就是程式區域內會一直被執行,直到負責控制迴圈運算的條件不滿足為止。

1.         一般流程,for分三個部分:
for(initialization Boolean-expression stepping) { 程式執行區塊 }
   上述三部分並非一定要撰寫,可空白。

2.         for-loop nested流程:巢狀for-loop表示一個for內還有包含for迴圈,以下為顯示九九乘法表的程式碼。
for(int i=1; i<10; i++){
   for(int j=1; j<10; j++){
         System.out.print(i + "*" + j + "=" + i * j + "\t");
                               
    }
    System.out.println();  
}
1*1=1    1*2=2    1*3=3    1*4=4    1*5=5    1*6=6    1*7=7    1*8=8    1*9=9   
2*1=2    2*2=4    2*3=6    2*4=8    2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*1=3    3*2=6    3*3=9    3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*1=4    4*2=8    4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*1=5    5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*1=6    6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7*1=7    7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8*1=8    8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
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

3.         breakcontinue關鍵字:for-loop結構中可以使用break跳出迴圈,它的相反就是使用continue立即執行下一個敘述。善用breakcontinue可在結構中更有彈性。continue表示為以下程式碼忽略不執行
(1)     第一個範例沒有使用continue,會顯示1  2  3  4  5  6  7
for(int i=1; i<11; i++){
        if(i==8){
                break;
        }
        if(i%3==0){
                //continue;
        }
        System.out.print(i+"\t");
        }
(2)     此範例使用continue,會顯示1  2  4  5  7
for(int i=1; i<11; i++){
        if(i==8){
                break;
        }       
        if(i%3==0){
               continue;  //流程跑回for,不執行下面程式碼,符合的有36
                                 //以不會顯示36
        }
         System.out.print(i+"\t");
}


留言

這個網誌中的熱門文章

107年高考資訊處理上榜心得(自修)

107 年高考資訊處理上榜心得 ( 自修 ) ------------------------------------------------------------------------- l    背景及報考動機 l    個人成績 l    準備經驗及時程規劃 l    各科準備方式 l    Q&A ------------------------------------------------------------------------- l    背景及報考動機: 小弟很幸運地今年考上高考資訊處理 ( 正取尾巴錄取 ) ,剛好這兩年開缺很多,今年總共錄取 117 人,正取 92 ,增額 25 人。因為自己也在網路上參考很多心得文章,所以想分享自己這次考上的心得。 先說一下自己考公職的歷程,所有的考試,都未曾補習過,小弟比較喜歡自己讀。考完公職才發現從小到大的考試根本無法比。準備資訊處理的考試前前後後時間加起來算是一年左右吧。 101/06              大學畢業 ( 資訊傳播工程學系 ) 102/09              考取特考交通行政 ( 參考: 交通行政上榜心得 ) 104/07              差 0.5 分考上高考交通行政 105/01              考取桃園捷運有限公司 106/03-12        邊工作 ( 桃捷 ) 邊念 106/07  ...

電腦編碼系統介紹

( 參考資料: wiki + 淺 談 電腦 編 碼 )   工作上在練習寫 Struts 架構時,發現編碼蠻重要的,例如設定登入頁面,設定編碼不一致時會出現編碼錯誤 ,加上自己不是很懂整個概念,而整理了這篇電腦編碼系統。 電腦編碼系統介紹: -------------------------------------------------------- ( 一 ) 基礎概念 ( 二 ) 常見的編碼及說明 ( 三 ) 網際網路的發展 ( 四 ) Unicode -------------------------------------------------------- ( 一 ) 基礎概念: 由於人能理解各種特殊複雜的文字及符號,而電腦只懂得兩個數字,即 0 與 1 ,因此我們必須制定一些規則,將特殊複雜的文字及符號,用 0 與 1 的數字組合表示。 如大寫英文字母” A ”,在 ASCII 編碼中,” 1000001 ” (7bits) 表示。” 1000001 ”稱為 字元集、字符集 (Character encoding) 。     所以字元編碼是一種系統,會將支援的字元集中的每一個字元的與代表該字元的某個值配對。 PS : Bit( 位元 ) 為最小單位: 0 或 1 。 Bytes( 位元組 ) 由八個 Bit 所組成。 ( 二 ) 常見的編碼及說明: 1.      ASCII(American Standard Code for Information Interchange) : (1)   美國資訊交換標準碼,字面意思就知此編碼由美國制定,為基於拉丁字母的一套字元邏輯, ASCII 編碼僅用 7bits ,最多僅能表示 2 7 , 128 個字元,所以能展現的字元極其有限,只能表達英文字母 A-Z 、 a-z 、數字 0-9 及少量標點符號,適合用於開發英文環境中。 (2) 每台電腦都有此編碼,用來儲存英文字元素。其他語言國家透過相同的 ANSI 編碼,去做自己國家的語言文字對應,因而產生不同的編碼系統。若是用同樣文字轉換成別的編碼辨識,會形成亂碼。 ( ...

交通行政考試 心得

交通行政考試   心得   準備公務人員的時間差不多十個月 (101/9-102/6/14) ,一開始的目標是『高普考』、『普考』及『身障特考』,以三等考試為主,四等為第二順位,所以在準備上以高普考的科目為主,四等考的較少,所以準備三等基本上可以考四等。很幸運這次身障四等出的每科題目都會寫,不太刁鑽。當初報考是以挑戰低錄取為主,所以沒打算補習,測試自己的能力到什麼程度,每個人可以視自己狀況是否需要補習,依經濟壓力、資訊更新等等,沒有一定的模式。 分數: 102 身障特考四等 國文   47  申 39 測 8 法學   56 運輸學   66 運經   78 運管   88 交行   60 總成績   65.83 ( 排名 1) 錄取標準   50.83   主要科目分數較高,本以為共同科目不會太差,結果感到意外。補充一下交通行政類科,高普考、普考查過近兩年分數差不多落在 65-50 左右。 ( 每類別錄取分數都不相同,無法比較 )   其實大學畢業本來沒有要從事公務人員,發生一些事情,才走上考國家考試,也就去挑戰它了。先看自己要報考哪類考試,地方、鐵路、警察特考、高普考、普考 …… 等等,再選擇要考的類別,然後就先查查要買哪家出版社的書囉,當初我買千華的共同類科,讀到中期才知道自己買錯了@@,聽朋友說可買志光系列的。大概用網路大部份的資料都找得到了,主要科目的書籍,買張恆光老師的書及志光運輸學的書,要準備 3-4 千是必要的。我大學唸的科系是資訊類,而跟交通毫無關係,可以說是新的領域。 **( 選擇考試目標及類別、書籍及網路心得文章 )   除了上網看心得文之外,有書籍是介紹國家考試上榜的書 ( 書名 - 飆進高普考 榜首如何巧勁致勝 ) ,看完鬥志燃燒 100 %。 飆進高普考-閱讀心得 基本上書中上 榜首 要素可歸類為:   * 下定決心要考上,給自己一個要考上的理由 ( 如考前三名或榜首之類 )   * 每天至少看書 8 小時以上   * 考前做考古題   * 個人筆記 ...