資料類型的強制轉換
Public class Example2{
int i=97;
char c=(char)i; //類型的強制轉換
System.out.println("c="+c);
}
百分製成績錄入的對話方塊
import javax.swing.JOptionPane;//對話方塊彈出需要的包中的方法
public class TestCondinitionalOperator{
public static void main(String args[]){
int score;
score=Integer.parseInt(JOptionPane.showInputDialog("請輸入百分製成績:"));//Integer.parseInt()方法將數位字串標識形式轉換為其等效的有符號整數。
String result=(score>=60)?"及格":"不及格";
System.out.println(result);
}
}
資料類型的範圍:。。。。。。。。。
流程式控制制語句
無論哪種程式設計語言,都會提供3種基本的流程式控制制結構——順序結構、分支結構、迴圈結構。其中分支結構用於實現根據條件來選擇性地執行某段代碼,迴圈結構則用於根據迴圈條件重複執行某段代碼。
順序結構:任何程式設計語言中最常見的程式結構就是順序結構。順序結構就是從上向下依次執行,排在前面的代碼先執行,排在後面的代碼後執行。這意味著:如果沒有流程式控制制,java方法中的語言室一個順序執行流,從上向下依次執行每條語句(即根據語句出現的先後順序依次執行)。
分支結構:根據條件從兩個分支或多個分支中選擇其中其一執行。先判定菱形框中的條件,當條件成立時,執行<語句1>,當條件不成立時,執行<語句2>.
迴圈結構:滿足某一條件時重複執行,知道條件不滿足。先判斷菱形框中的條件,當條件成立時,反覆執行<語句>,直到條件不成立退出迴圈,執行下一個基本結構。
Java同樣也提供了用於實現分支和迴圈結構的語句。
分支語句:if和switch
迴圈語句:while、do while、for和foreach;
其中foreach迴圈是JDK5.0提供的一種新的迴圈語句,能以簡單的方式來遍曆集合、數組的元素。
public class TestIfError{
public static void main(String args[]){
int score=85;
if(score>=90){
System.out.println("優秀");
}else if(score>=80){
System.out.println("良好");//注意if 、else fi 的順序,如果顛倒則只會執行及格那條語句
}else if(score>=60){
System.out.println("及格");
}
}
}
如果每次都去計算if條件和else條件的交際也是一件非常繁瑣的事情,為了避免出上面的錯誤,在使用if////else語句時有一條基本規則——總是有限把包含範圍小的條件放在前面處理。如score>=80和score>=60連個條件,明顯score>=80的範圍更小,所以應該先處理score>=80的情況。
Switch分支語句
Switch語句有一個控製表達式和多個case標籤組成。和if語句不通的是,swirch語句後面的控製表達式的資料類型只能是整形或字元型,而不能是boolean型。Case標籤後緊跟一耳光代碼塊,case標籤作為這個代碼塊的標識,switch語句的文法格式如下:
Switch(expression){
Case condition1:{
Statement(s)
Break;
}
Case condition2:{
Statement(s)
Break;
}
….
Case condition:{
Statement(s)
Break;
}
Default:{
State,emt(s)
}
}這種分支語句的執行是先對expression求職,然後依次匹配condition1,condition2…conditionN等值,遇到匹配的值即執行對應的 執行體,如果所有case標籤後的值都不與expression運算式的值相等,則執行default標籤偶的代碼塊。
public class TestSwitch{
public static void main(String args[]){
//聲明變數score,並為其賦值為‘C’
char grade='C';
//執行switch分支語句
switch(grade){
case 'A':
System.out.println("優秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("中");
break;
case 'D':
System.out.println("及格");
break;
case 'E':
System.out.println("不及格");
break;
case 'F':
System.out.println("優秀");
break;
default:
System.out.println("成績輸入錯誤");
}
}
}運行上滿程式,輸出結果為“中“。這個結果完全正常,字元運算式score的值為C,對應結果為‘中’。
值得指出的是,switch語句中控製表達式的類型只能是byte、short、char和int,而不能是字串,這與C#中有所不通。
在case標籤後的每個代碼塊後都有一條break;語句了,這個break;語句有著極其重要的意義。Java的switch語句允許省略case後代碼塊的break;語句,但是這種省略可能引入一個陷阱。吐過把上面程式中的break;語句都注釋掉,運行結果會有所出入。 這個結果看起來比較奇怪,但這正是由switvh語句的運行流程決定的:switch語句會先求出expression運算式的值,然後拿這個運算式和case標籤後的值進行比較,一旦遇到相等的值,程式變開始執行該case標籤後的代碼,而不再判斷與偶棉case、default標籤的條件時佛偶匹配,除非遇到break;才會結