2022/4/17 JavaDay09
阿新 • • 發佈:2022-04-17
1. while迴圈
while(){}
-
條件正確迴圈一直執行
-
package com.sundada.struct; public class WhileDemo01 { public static void main(String[] args) { //輸出1~100 int i=0; while (i<100){ i++; System.out.println(i); } } }
package com.sundada.struct;
public class WhileDemo02 {
public static void main(String[] args) {
//死迴圈
while (true){
//等待客戶端連線
//定時檢查
//......
}
}
}
package com.sundada.struct;
public class WhileDemo03 {
public static void main(String[] args) {
//計算1一直加到100
int i=0;
int sum=0;
while (i<=100) {
sum = sum + i;
i++;
}
System.out.println(sum);
}
}
2. do...while迴圈
區別:
-
while先判斷後執行,do while先執行後判斷
-
do while至少執行一次
package com.sundada.struct;
public class DoWhileDemo02 {
public static void main(String[] args) {
int a=0;
while (a<0){
System.out.println(a);
}
System.out.println("========");
do {
System.out.println(a);
}while (a<0);
// ========
// 0
}
}
3. For 迴圈
package com.sundada.struct;
public class ForDemo01 {
public static void main(String[] args) {
int a=1;//初始化條件
while (a<=100){//條件判斷
System.out.println(a);//迴圈
a+=2;//迭代
}
System.out.println("while迴圈結束");
for (int i = 1; i <100 ; i++) {
System.out.println(i);
}
System.out.println("for迴圈結束");
/*
* 可以為空語句
* */
}
}
-
計算0~100之間所有奇數和偶數的和
package com.sundada.struct;
public class ForDemo02 {
public static void main(String[] args) {
int oddSum=0;
int evenSum=0;
for (int i = 0; i < 100; i++) {
if ( i%2!=0 ){
oddSum=oddSum+i;
}else {
evenSum=evenSum+i;
}
}
System.out.println("奇數的和:"+oddSum);
System.out.println("偶數的和:"+evenSum);
}
}
-
用while和for迴圈輸出1~1000之間能被5整除的數,每行輸出三個
package com.sundada.struct;
public class ForDemo03 {
public static void main(String[] args) {
//用while和for迴圈輸出1~1000之間能被5整除的數,每行輸出三個
for (int i = 0; i < 100; i++) {
if ( i%5==0 ){
System.out.print(i+"\t");//這裡使用print,切記
}
if ( i%(5*3)==0 ){
System.out.print("\n");//==println
}
}
//println輸出會換行
//print輸出不會換行
}
}
-
列印九九乘法表
迴圈巢狀迴圈
package com.sundada.struct;
public class ForDemo04 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(j+"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
}
}
4. 增強For迴圈
for(){}
package com.sundada.struct;
public class ForDemo05 {
public static void main(String[] args) {
int[] numbers={10,20,30,40,50};//定義一個數組
for (int i = 0; i < 5; i++) {
System.out.println(numbers[i]);
}
System.out.println("===========");
//遍歷陣列的元素
//陣列賦值,結合陣列和集合
for (int x:numbers){
System.out.println(x);
}
}
}
5. break,continue,goto
-
break用於強制終止迴圈
package com.sundada.struct;
public class BreakDemo01 {
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
System.out.println(i);
if ( i==30 )break;//僅僅終止這個for迴圈
}
System.out.println("123");
}
}
-
continue用於終止某次迴圈,接著執行下一次迴圈
package com.sundada.struct;
public class ContinueDemo {
public static void main(String[] args) {
int i=0;
while (i<100){
i++;
if ( i%10==0 ){
System.out.println();
continue;//能被10整除則換行
}
System.out.print(i+"\t");
}
}
}
-
goto關鍵字
java沒有goto,但可以看到他的影子,可能使用label標籤來實現
package com.sundada.struct;
public class LabelDemo {
public static void main(String[] args) {
//列印101~150之間所有質數
int count=0;
outer:for (int i = 101; i < 150; i++) {
for (int j = 2; j < i/2; j++) {
if ( i%j==0)continue outer;
}
System.out.print(i+" ");
}
}
}
6. 練習
列印三角形
debug左上角那個蟑螂,記得設定斷點
package com.sundada.struct;
public class TestDemo {
public static void main(String[] args) {
//列印三角形 5行三角形
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >=i ; j--) {
System.out.print(" ");
}
for (int j = 1; j <=i ; j++) {
System.out.print("*");
}
for (int j = 1; j <i ; j++) {
System.out.print("*");
}
System.out.println();
// *
// ***
// *****
// *******
// *********
}
}
}