Java筆記丨09 流程控制語句
程式的三種基本流程
順序、分支、迴圈
計算機裡任何一個複雜的時間序列都可以通過這三種結構以及它們的巢狀來完成
簡單語句
- 最簡單的語句
方法呼叫語句
賦值語句,注意分號(;)
如:
System.out.println(“Hello World”);
a=3+x;
b=a>0?a:-a;
s=TextBox1.getText();
d=Integer.parseInt(s);
Java中沒有“表示式語句”這個概念
x+y;是不合法的
程式的註釋
Java中採用3種註釋方式
// 可用於單行註釋。註釋從//開始,終止於行尾;
/*…*/ 用於多行註釋。註釋從/*開始,到*/結束,且這種註釋不能互相巢狀;
/**…*/ 是Java所特有的doc註釋。它以/**開始,到*/結束。可以用Javadoc這個命令,把它生成一個HTML文件。在生成的時候,還可以識別註釋中用@標記的一些特殊符號。
- @see:引用其它的類
- @version:版本資訊
- @author:作者資訊
- @param:引數名說明
- @return:說明
- @exception:異常說明
對於有@標記的註釋,javadoc在生成有關程式的文件時,會自動地識別它們,並生成相應的文件,
如:
javadoc HelloDate.java
分支語句——if
if(條件表示式)
語句塊;//if分支
else
語句塊;//else分支
·LeapYear.java
public class LeapYear{ public static void main(String args[ ]){ int year=2003; if((year%4==0&&year%100!=0)||(year%400==0)) System.out.println(year+”is a leap year.”); else System.out.println(year+”is not a leap year.”); } }
分支語句——switch語句
switch(exp){
case const1:
statement1:
break;
case const2:
statement2:
break;
…
case constN:
statement;
break;
default:
statement_dafault;
break;
}
使用switch要注意:
- 變數型別是整數、字元、字串(String)
- case後面是常量
- 注意break
·GradeLevel.java分數等級
char grade=‘C’;
switch(grade){
case’A’:
System.out.println(grade+”is 85~100”);
break;
case’B’:
System.out.println(grade+”is 70~84”);
break;
case’C’:
System.out.println(grade+”is 60~69”);
break;
case’D’:
System.out.println(grade+”is <60”);
break;
default:
System.out.println(“input error”);
}
示例:請見下一篇部落格(Java筆記09-1)
迴圈語句
迴圈語句功能
在迴圈條件滿足的情況下,反覆執行程式碼
迴圈的5個要素
- 初始化條件
- 迴圈條件 部分
- 迴圈體部分
- 迭代部分
- 結束後處理
示例:請見下一篇部落格(Java筆記09-1)
Goto語句及其弊端
Java中的解決方式:
在迴圈中break標號、continte標號
其中,在迴圈前面可以用標號來表明是哪重迴圈
特殊流程控制語句
break語句
1.break語句用於終止某個程式塊的執行
{
…
break;
….
}
2.break語句出現在多層巢狀的語句塊中時,可以通過標籤指明要終止的是哪一層語句塊
label1:{…
label2: {…
label3: {…
break label2;
……
}
}
}
break用法舉例
public class TestBreak{
public static main void(String args[ ]){
for(int i=0;i<10;i++){
if(i==3)
break;
System.out.println(“i=”+i);
}
System.out.println(“Game Over!”);
}
}
continue語句
- continue語句用於跳過某個迴圈語句塊的一次執行
- continue語句出現在多層巢狀的迴圈語句體中時,可以通過標籤指明要跳過的是哪一層迴圈
continue語句用法舉例1
public class ContinueTest{
public static void main(String args[ ]){
for(int i=0;i<100;i++){
if(i%10==0)
continue;
System.out.println(i);
}
}
}
示例:求100以內的質數
Prime100Continue.java
public class Prime100Continue {
public static void main(String args[]){
System.out.println("****100--200的質數****");
int n=0;
outer:for(int i=101;i<200;i+=2){//外層迴圈
for(int j=2;j<i;j++){//內層迴圈
if(i%j==0)//不是質數,則繼續外層迴圈
continue outer;
}
System.out.print(" "+i);//顯示質數
n++;//計算個數
if(n<10)//未滿10個數則不換行
continue;
System.out.println();
n=0;
}
System.out.println();
}
}