Java語言程式設計—迴圈語句
4.1 while迴圈
while迴圈在條件為真的情況下,重複的執行語句。
while迴圈語法如下:
while(迴圈繼續條件){
//迴圈體
語句(組);
}
注意:迴圈繼續條件應該總是放在圓括號內。只有當迴圈體制包含一條語句火不包含語句時,迴圈體的花括號才可以省略。
要保證迴圈繼續條件最終變成false,一便程式能夠結束。一個常見的程式設計錯誤是無限迴圈。如果程式執行了不尋常的長時間而不結束,可能其中有無限迴圈。
迴圈設計策略
第一步:確定需要重複的語句。
第二步:將這些語句放在一個迴圈中,如下所示:
while(true){
語句組;
}
第三步:為迴圈繼續條件編碼,併為控制迴圈新增適合的語句。如下所示:
while(迴圈繼續條件){
語句組;
用於控制迴圈的附件語句;
}
注意:在迴圈控制中,不能使用浮點直來比較是否相等。因為浮點值都是某些值得近似值,使用他們可能導致不精確的迴圈次數和不精確的結果。
4.2 do-while迴圈
要點提示:do-while迴圈和while迴圈基本一樣,不同的是它先執行迴圈體一次,然後判斷迴圈繼續條件。
do-while迴圈是while迴圈的變體。它的語法如下:
do{
//迴圈體;
語句(組);
}while(迴圈繼續條件);
提示:如果迴圈中的語句至少需要執行一次,建議使用do-while迴圈。
4.3 for迴圈
要點提示:for迴圈具有編寫迴圈的簡明語法。
for迴圈的語法如下:
for(初始操作;迴圈繼續條件;每次迭代後的操作){
//迴圈體;
語句(組);
}
for迴圈語句從關鍵字for開始,然後使用雙括號括住的迴圈控制結構體。
4.4 巢狀迴圈
巢狀迴圈是有一個外層迴圈和一個或多個內層迴圈組成的。每當重複執行一次外層迴圈時將再次進行內部迴圈,然後重新開始。
注意:巢狀迴圈將執行的時間較長。
4.5 最小化數值錯誤
要點提示:在迴圈繼續條件中使用浮點數將導致數值錯誤。
涉及浮點數的數值誤差是不可避免的,因為浮點數在計算機中本省就是近似表示的。
4.6 break和continue
要點提示:關鍵字break和continue在迴圈中提供了額外的控制。
注意:continue語句總是在一個迴圈內。在while和do-while迴圈中,continue語句之後會馬上計算迴圈繼續條件;而在for迴圈中,continue語句之後會立即先執行每次迭代後的動作,在計算迴圈繼續條件。
編寫程式
4-11
import java.util.*;
public class day4_11 {
public static void main(String args[]){
Scanner scanner=new Scanner(System.in);
System.out.print("輸入一個值:");
int number=scanner.nextInt();
double a=1;
long b=1;
for(int i=1;i<=number;i++){
b=i*b;
double c=1.0/b;
a=a+c;
}
System.out.println(a);
}
}
4-12
import java.util.*;
public class day4_12 {
public static void main(String args[]){
Scanner scanner=new Scanner(System.in);
System.out.print("輸入年份:");
int year=scanner.nextInt();
System.out.print("輸入一月份第一天星期:");
int match=scanner.nextInt();
String array[]=new String[]{"A","B","C","D","E","F","G"};
if(year%4==0&&year%100!=0||year%400==0){
switch(0){
case 0: System.out.println(year+" 1月"+array[match]);
case 1: System.out.println(year+" 2月"+(array[(match+3)%7]));
case 2: System.out.println(year+" 3月"+(array[(match+4)%7]));
case 3: System.out.println(year+" 4月"+array[match%7]);
case 4: System.out.println(year+" 5月"+(array[(match+2)%7]));
case 5: System.out.println(year+" 6月"+(array[(match+5)%7]));
case 6: System.out.println(year+" 7月"+(array[(match+7)%7]));
case 7: System.out.println(year+" 8月"+(array[(match+3)%7]));
case 8: System.out.println(year+" 9月"+(array[(match+6)%7]));
case 9: System.out.println(year+" 10月"+(array[(match+1)%7]));
case 10: System.out.println(year+" 11月"+(array[(match+4)%7]));
case 11: System.out.println(year+" 12月"+(array[(match+6)%7]));
}}else{
switch(0){
case 0: System.out.println(year+" 1月"+array[match]);
case 1: System.out.println(year+" 2月"+(array[(match+3)%7]));
case 2: System.out.println(year+" 3月"+(array[(match+3)%7]));
case 3: System.out.println(year+" 4月"+(array[(match+6)%7]));
case 4: System.out.println(year+" 5月"+(array[(match+1)%7]));
case 5: System.out.println(year+" 6月"+(array[(match+4)%7]));
case 6: System.out.println(year+" 7月"+(array[(match+6)%7]));
case 7: System.out.println(year+" 8月"+(array[(match+2)%7]));
case 8: System.out.println(year+" 9月"+(array[(match+6)%7]));
case 9: System.out.println(year+" 10月"+(array[(match+7)%7]));
case 10: System.out.println(year+" 11月"+(array[(match+3)%7]));
case 11: System.out.println(year+" 12月"+(array[(match+5)%7]));
}
}
}
}
4-16
import java.util.*;
public class d4_16 {
public static void main(String args[]){
Scanner scanner=new Scanner(System.in);
int pcount=0,ccount=0;
while(true){
System.out.print("請輸入數字:");
int p=scanner.nextInt();
int c=(int)(Math.random()*3);
if(p==c){
System.out.print("平局");
}if(p==0&&c==1){
System.out.println("電腦勝");
ccount++;
}if(p==0&&c==2){
System.out.println("玩家勝");
pcount++;
}if(p==1&&c==2){
System.out.println("電腦勝");
ccount++;
}if(p==1&&c==0){
System.out.println("玩家勝");
pcount++;
}if(p==2&&c==0){
System.out.println("電腦勝");
ccount++;
}if(p==2&&c==1){
System.out.println("玩家勝");
pcount++;
}if(ccount==2||pcount==2){
break;
}}
if(pcount==2){
System.out.println("玩家勝");
}else{
System.out.println("電腦勝");
}
}
}
}
4-18
import java.util.*;
public class day4_18 {
public static void main(String args[]){
Scanner scanner=new Scanner(System.in);
System.out.print("輸入數值:");
int num=scanner.nextInt();
String a="";
while(true){
int number=num%16;
if(number>9){
switch(number){
case 10:a="A"+a;break;
case 11:a="B"+a;break;
case 12:a="C"+a;break;
case 13:a="D"+a;break;
case 14:a="E"+a;break;
case 15:a="F"+a;break;
}
}else{
a=number+a;
}
num/=16;
if(number==0){
break;
}
}
System.out.println("0X"+a);
}
}
相關文章
- 04 shell程式設計之迴圈語句程式設計
- 分支語句和迴圈語句
- Java迴圈語句以及break,continue語句,IDEA安裝JavaIdea
- Java 可以採用什麼語句跳出迴圈語句Java
- Java基礎 迴圈語句 for while do.....while語句JavaWhile
- Java簡單迴圈語句案例Java
- JavaScript 流程控制語句詳解:if語句、switch語句、while迴圈、for迴圈等JavaScriptWhile
- C語言程式設計學習中while迴圈和do……while迴圈C語言程式設計While
- JavaScript for 迴圈語句JavaScript
- Ruby迴圈語句
- TypeScript 迴圈語句TypeScript
- MySQL迴圈語句MySql
- java常見語句之迴圈體Java
- 用Java中for迴圈語句列印菱形Java
- 實驗6迴圈結構程式設計(for語句的應用)程式設計
- 七 while迴圈語句While
- JavaScript跳出for迴圈語句JavaScript
- Python的迴圈語句Python
- 7-迴圈語句
- Python-條件語句和迴圈語句Python
- JAVA修飾符、運算子、迴圈語句Java
- c語言中,while(1)語句使用break語句跳出迴圈C語言While
- JAVA語言程式設計思想Java程式設計
- Python 迴圈語句的使用Python
- 【Python基礎】for迴圈語句Python
- MyBatis xml foreach迴圈語句MyBatisXML
- 流程控制、 迴圈語句
- 2-4 Java流程控制——迴圈語句Java
- Java for迴圈中語句執行的順序Java
- Java 函數語言程式設計Java函數程式設計
- python04: while迴圈語句 break continue for in 迴圈PythonWhile
- C#程式設計基礎第七課:C#中的基本迴圈語句:while迴圈、do-while迴圈、for迴圈、foreach迴圈的使用C#程式設計While
- 單向迴圈連結串列介面設計(C語言)C語言
- GaussDB SQL基礎語法示例-迴圈語句SQL
- 初學Python(3)迴圈語句Python
- 分支、迴圈語句動態展示
- Python基礎-While迴圈語句PythonWhile
- Python條件語句與迴圈Python