跳到主要內容

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              差 6 分考上高考資訊處理 107/01            離職當全職考生 小弟並非第一次參與國家考試了,只是這次考試類別從交通行政轉換成資訊處理。本來考上桃捷公司就沒有想轉換跑道了,但在同事勸說下,再加上去年的高考考試,差 6 分考上,所以才毅然堅持地辭掉工作,當個全職考生,算賭一把機會 ( 只給自己兩年時間 ) 。 l    個人成績 - 資訊處理 107 年高考 ( 正取 ) 國文:                     56 ( 申 42 、測 14) 法學與英文:         66 資通網路:             56 程式語言:             7

電腦編碼系統介紹

( 參考資料: 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 編碼,去做自己國家的語言文字對應,因而產生不同的編碼系統。若是用同樣文字轉換成別的編碼辨識,會形成亂碼。 ( 以 2 個 Bytes- 16bits 對應一個文字 進行儲存 ) 2.    

閱讀心得:真希望17歲就學會的金融知識

書名:真希望 17 歲就學會的金融知識         作者:慎 泰俊 (Shin Taejun) 此書是在 2013 年 2 月 11 日記錄的心得內容,因學校教育沒有教導我們理財知識,而去書局找一些基本書來學習,本書由基礎觀點一步一步深入教導,例如了解風險與報酬、分散風險、現在與未來價值、應用篇 … 等,書中內容附有相關計算公式。除了教導理財知識,書中也提到我們可以把時間拿來做甚麼事情,這也是一種投資,投資自己。 想學習理財 / 投資等知識,必須一步一步慢慢來,才能成為理財高手,絕對沒有一步登天賺大錢的神蹟;重點在於自己的判斷與思考。 書中提到當一個 BETA 值低的人,就是做很少做的事情或專研該領域,當發生危機時,你會是一個很重要的人,因為只有你懂,你能處理別人處理不了的危機風險。 ※ BETA 係數說明 ---------------------------- 一、前言 二、朝會 三、 第一堂課 - 風險與報酬 四、 第二堂課 - 分散風險 五、 第三堂課 - 現在價值與未來價值 六、 第四堂課 - 應用篇 - 國文 七、 第五堂課 - 應用篇 - 社會 八、老師指導時間 九、放學後 ---------------------------- 一、前言 古羅馬思想家塞內卡 (Lucius Annaeus Seneca) 說過:「人生非常漫長,若能全部加以有效利用,就能豐富人生,完成最偉大的事。」 不論是任何狀況, 永遠都有無限的可能。只要你希望,就可以實現幾乎所有的事 。 二、朝會 1.       不容許任何失敗、把自己牢牢束縛住的人、只跟與自己類似的人相處的人、只跟其他人作相同事情的人,都是 無法妥善處理不確定事務的人 。 為了順利使用某事物,並加以妥善處理, 第一步就是瞭解其結構 。對於不確定事物的結構,只有重要三件事要注意: n    第一, 愈能接受不確定性,回報也愈大。 n    第二, 有辦法成功降低不確定性。 n    第三, 確定的現在與不確定的將來是兩碼子事 。 2.       先學習如何 思考重點 。 金融理論採用報酬 ( 回報 ) 與風險 ( 結果的不確定性 ) 的思考