Java使用條件陳述式和迴圈結構確定控制流程,java語句
與任何程式設計語言一樣,Java使用條件陳述式和迴圈結構確定控制流程。本文將簡單講解條件、迴圈和switch。
一、塊範圍
塊(block),即複合陳述式。是指由一對大括弧括起來的若干條簡單的Java語句。塊確定了變數的範圍。
比如:
1 public class Code { 2 static 3 { 4 System.out.println("1"); 5 } 6 { 7 System.out.println("2"); 8 } 9 public Code()10 {11 System.err.println("3");12 }13 public static void main(String[]args)14 {15 new Code();16 }17 }
注意:不能在嵌套的兩個塊中聲明同名的變數。
二、條件陳述式
格式1:
if(condition)
{
statement1
statement2
........
}
例如:
1 if(youSales>=target)2 {3 performance="Satisfactory";4 bonus=1000;5 }
格式2:
if(condition)statement1 else statement2
例如:
1 if(youSales>=target) 2 { 3 performance=“Satisfactory”; 4 bonus=100+10*(youSales-target“); 5 } 6 else 7 { 8 performance=”Unstatisfactory“; 9 bonus=0;10 }
三、迴圈
當條件為true時,while迴圈執行。
格式1:
while(condition)statemnet
例如:
1 while (balance<goal)2 {3 balance+=payment;4 double interest=balance*interestRate/100;5 balance+=interest;6 years++;7 }
格式2:
do statement while(condition);
1 do 2 { 3 balance+=payment; 4 double interest=balance*interestRate/100; 5 balance+=interest; 6 7 year++; 8 9 System.out.printf("After year %d,your balance is %,.2f%,year,balance");10 11 System.out.print("Ready to retire?(Y/N)");12 input=in.next();13 }14 while(input.equals("N"));15 16 }
四、確定迴圈
for迴圈語句是支援迭代的一種通用結構,利用每次迭代之後更新的計數器或類似的變數來控制迭代的次數。
格式類似如下:
for(int i=0;i<x.length;i++)
System.out.println(i);
例子4個:
1 public class ShuZu1 { 2 public static void main(String[]args){ 3 int [][] x={{1,2,2,2,2},{3,3,3,3,3},{4,5,-1,17,55}}; 4 int result=qiuHe(x); 5 System.out.println("和是"+result); 6 } 7 public static int qiuHe(int[][]x){ 8 int s=0; 9 for(int i=0;i<x.length;i++)10 {11 for(int j=0;j<x[i].length;j++)12 {13 s+=x[i][j];14 }15 }16 return s;17 }18 }
1 public class ShuZu2 { 2 public static void main(String[]args){ 3 int [][] x=new int[7][7]; 4 //產生隨機數組,注意沒有傳回值,另外列印一行字 5 suiJi(x); 6 System.out.println("產生的數組是:"); 7 8 //顯示數組內容,注意沒有傳回值 9 showArray(x);10 11 //取值12 float result=getAvg(x);13 System.out.println("平均數是"+result);14 15 }16 static float getAvg(int [][] x){17 float s=0;18 for(int i=0;i<x.length;i++){19 for(int j=0;j<x[i].length;j++){20 s+=x[i][j];21 }22 }23 return s/(x.length*x[0].length);24 }25 static void suiJi (int[][]x){ //這裡我出錯了。傳回值寫了int型,不應該的。思考一下。26 for(int i=0;i<x.length;i++){27 for(int j=0;j<x[i].length;j++){28 x[i][j]=(int)(Math.random()*10);29 }30 }31 }32 static void showArray(int[][]x){ //這裡我出錯了。傳回值寫了int型,不應該的。思考一下。33 for(int i=0;i<x.length;i++){34 for(int j=0;j<x[i].length;j++){35 System.out.print(x[i][j]+"\t");// 給資料空格36 }37 System.out.println();//列印換行38 }39 }40 }
1 import java.util.Arrays; 2 public class SuZu3{ 3 public static void main(String[] args) { 4 int [] x={2,-1,7,777,6,764,85896,65554,0,874785,417825,74}; 5 sort(x,'n'); 6 for(int i=0;i<x.length;i++){ 7 System.out.print(x[i]+"\t"); 8 } 9 }10 //給數組進行選擇性排序11 //調用API進行升序12 static void sort(int[]x,char Flag){13 if('A'==Flag){14 Arrays.sort(x);15 }16 else {17 for(int i=0;i<x.length-1;i++){18 for(int j=0;j<x.length-1-i;j++){19 int temp=0;20 if(x[j]<x[j+1]){21 temp=x[j];22 x[j]=x[j+1];23 x[j+1]=temp;24 }25 }26 }27 }28 }29 }
1 import java.util.Scanner; 2 3 public class Suzu4 { 4 public static void main(String[] args) { 5 System.out.println("請輸入");//這個命令只能緊貼在Scanner scan = new Scanner(System.in);的上面或下面才有效。 6 Scanner scan = new Scanner(System.in); 7 //System.out.println("請輸入");或者放在Scanner scan = new Scanner(System.in);的下面 8 String str = scan.nextLine();// nextLine才是接收一行 9 10 char[] s = str.toCharArray();// 把字串轉換稱一個字元數組11 scan.close();12 int letterCount = 0;13 int numberCount = 0;14 int spaceCount = 0;15 int otherCount = 0;16 for (int i = 0; i < s.length; i++) {17 if (s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z') {18 letterCount++;19 } else if (s[i] >= '1' && s[i] <= '9') {20 numberCount++;21 } else if (s[i] == ' ') {22 spaceCount++;23 } else {24 otherCount++;25 }26 }27 System.out.println("字母有" + letterCount + "個");28 System.out.println("數字有" + numberCount + "個");29 System.out.println("空格有" + spaceCount + "個");30 System.out.println("其他有" + otherCount + "個");31 }32 }//ctrl+shift+f 是代碼格式化33 //ctrl+shift+o 是導包
五、多重選取:switch語句
格式類似如下:
switch(choice)
{
case 1:
........
break;
case 2:
.......
break;
.........
//可以再來幾個case(用break結束一下)
default:
.......
break;
}
注意:
case標籤可以是:
* 類型為char、byte、short或int的常量運算式。
* 枚舉常量
* 從Java SE 7開始,case標籤還可以是字串字面量。