2019年1月11日 星期五

java - 迴圈Loop for,while, do, 巢狀迴圈, 控制Loop,

(一) 重覆"速讀"的步驟
(二)for(1.;2 ; 3 )
       1.起點,計算次數用的變數,要結合初始值
       2. 條件 = if => true/false => 判斷 停止/繼續
       3.如何讓2 回覆 false (停止)
       
範例:
class ex5
{
public static void main(String args[])
{
for(int x=1;true;)  //可以執行但是會一直迴圈不會停止
{
System.out.println("hello java");
}


/*
System.out.println("hello java");
System.out.println("hello java");
System.out.println("hello java");
System.out.println("hello java");
System.out.println("hello java");
*/
}


}
執行結果:
不會停下  可以按 Ctrl + c 停止



















範例二:

class ex5
{
public static void main(String args[])
{
for(int x=1;x<=6;x++)  //一定要加入 判斷  x <6 不然會抱錯
{
System.out.println("x="+x+"\thello java");
}
/*
for(int x=1;true;)
{
System.out.println("hello java");
}
*/

/*
System.out.println("hello java");
System.out.println("hello java");
System.out.println("hello java");
System.out.println("hello java");
System.out.println("hello java");
*/
}


}
執行結果:









範例三:
class ex5
{
public static void main(String args[])
{
for(int x=1,y=2;x<=20000 || y<=35000;)//可以加入多個判斷
{
System.out.println("x="+x+"\ny="+y);
x=y*100-5;
y=100*x-10;
}
}


}
執行結果:








(三)while (條件)
{
......................................
}
範例一:
class ex5
{
public static void main(String args[])
{
int x=1;
while(x<=6)
{
System.out.println("x="+x+"\thello java");
x++;
}
}


}
執行結果:










(四)
do
{
......................................
}while (條件)

範例一:

class ex5
{
public static void main(String args[])
{
int x=1;
do
{
System.out.println("x="+x+"\thello java");
x++;
}while(x<=6);
}


}

執行結果:








※ (三) 會先判斷在執行   (四) 會先執行在判斷,區別可用來做即時監控可以判斷錯誤在停止



(五)巢狀迴圈
=> 九九乘法表
class ex6
{
public static void main(String args[])
{
for(int x=1;x<=9;x++)
{
for(int y=1;y<=9;y++)
{
System.out.print(x+"*"+y+"="+(x*y)+"\t");
}
System.out.println();
}
/*int x1=1;
for(int y=1;y<=9;y++)
{
System.out.print(x1+"*"+y+"="+(x1*y)+"\t");
}
System.out.println();
int x2=2;
for(int y=1;y<=9;y++)
{
System.out.print(x2+"*"+y+"="+(x2*y)+"\t");
}
System.out.println();
int x3=3;
for(int y=1;y<=9;y++)
{
System.out.print(x3+"*"+y+"="+(x3*y)+"\t");
}
System.out.println();
*/
}


}

執行結果:













可控制迴圈範例:
class ex5
{
public static void main(String args[])
{

java.util.Scanner sc=new java.util.Scanner(System.in);

System.out.println("輸入次數");
int n=sc.nextInt();

for(int x=1;x<=n;x++)
{
System.out.println("x="+x+"\thello java");
}



}


}
執行結果:


















(六)控制迴圈 Loop
1.break
2.continue
3.Label => 標記

範例一:
class ex8
{
public static void main(String args[])
{

java.util.Scanner sc=new java.util.Scanner(System.in);

System.out.println("輸入次數");
int n=sc.nextInt();



for(int x=1;x<=n;x++) //控制變數是 X  因X有增遞控制機制
{
if(x==101) break;
System.out.println("x="+x+"\thello java");
}





}


}
執行結果:
















範例二:
class ex9
{
public static void main(String args[])
{


java.util.Scanner sc=new java.util.Scanner(System.in);

System.out.println("輸入次數");
int n=sc.nextInt();



for(int x=1;x<=n;x++)
{
if(x>=2 && x<=8) continue;   //滿足區間跳過   continue 可以跳過
if(x>=11 && x<=17) continue; //滿足區間跳過   continue 可以跳過

if(x==121) break;

System.out.println("x="+x+"\thello java");
}

}


}
執行結果:















範例三: 矛點
class ex10
{
public static void main(String args[])
{

java.util.Scanner sc=new java.util.Scanner(System.in);

System.out.print("列數:");
int n=sc.nextInt();
System.out.print("行數:");
int m=sc.nextInt();

a: //可以在for迴圈加一個矛點  告訴下面的break 可以停止
for(int x=1;x<=n;x++)//列數
{


for(int y=1;y<=m;y++)//行數
{

if(y==8) break;
if(x==7) break a;//關閉外面的迴圈


System.out.print(x+"*"+y+"="+(x*y)+"\t");

}
System.out.println();

}



}


}
執行結果:
a: 中斷執行






沒有留言:

張貼留言