day4 java迴圈結構,day4java迴圈

來源:互聯網
上載者:User

day4 java迴圈結構,day4java迴圈

  for迴圈結構:
  格式:①初始化條件;②迴圈條件;③迭代條件;④迴圈體

for(①;②;③){    //④}

  執行過程:①-②-④-③-②-④-③-。。。-④-③-②,直至迴圈條件不滿足,退出當前的迴圈。

class myfor{        public static void main(String[] args){                for(int i = 0;i<4;i++){                System.out.println("hello java");                }        }}
root@debian:/home/jeff/java_coding/day004# java myfor hello javahello javahello javahello java

  for迴圈執行過程

class myfor1{        public static void main(String[] args){                int j = 1;                for(System.out.print('a');j<4;System.out.print('b'),j++){                System.out.println('c');                }        }}
root@debian:/home/jeff/java_coding/day004# java myfor1 acbcbc

  用for迴圈解決問題

//100以內偶數的和class myfor2{        public static void main(String[] args){                int sum = 0;                for(int i = 1;i<101;i++){                        if(i % 2 ==0){                                sum +=i;                        }                }                System.out.println(sum);        }}
root@debian:/home/jeff/java_coding/day004# java myfor2 2550

  水仙花數問題

/*輸出所有的水仙花數,所謂水仙花數是指一個3   位元,其各個位上數字立方和等於其本身。    例如: 153 = 1*1*1 + 3*3*3 + 5*5*5*/class shuixianhua{    public static void main(String[] args){        for(int i = 100;i<1000;i++){            int bai = i / 100;            int shi = (i %100) /10;            int ge = i %10;                        if(i == bai*bai*bai+shi*shi*shi+ge*ge*ge){                System.out.println(i);            }        }    }}
root@debian:/home/jeff/java_coding/day004# java shuixianhua 153370371407

  while迴圈

  格式:

①while(②){    ④    ③}

  for迴圈與while可以相互轉換。

class myfor3{    public static void main(String[] args){        //100以內的和        int i = 1;        int sum = 0;        while(i <= 100){            if(I % 2 == 0){                System.out.println(i);                sum += i;            }            i++;        }        System.out.println(sum);    }}

  do-while

  格式:①初始化條件;②迴圈條件;③迭代條件;④迴圈體

①do{    ④    ③}while(②);

  do-while與while類似,唯一的區別就是do-while至少會執行一次。

class mywhile{    public static void main(String[] args) {        //do-while與while的區別        int i = 10;        int j = 10;        do{            System.out.println(i);            i++;        }while(i < 10);        while(j < 10){            System.out.println(j);            j++;        }    }}

  運行會列印一個10,即i先do一次列印才會結束迴圈體。

  無限迴圈:for(;;){}或者
  while(true){}
  說明:一般情況下,在無限迴圈內部要有程式終止的語句,使用break實現。若沒有,那就是死迴圈!

  死迴圈應用

//鍵入隨意個數字,0退出,輸出正數與負數的個數import java.util.Scanner;class deadforloop{    public static void main(String[] args){        Scanner s = new Scanner(System.in);        int a = 0;//記錄正數的個數        int b = 0;//記錄負數的個數        //for(;;){        while(true){            System.out.println("請輸入一個整數:");            int num = s.nextInt();            if(num > 0)                a++;            else if(num < 0)                b++;            else                break;            }        System.out.println("正數的個數為:" + a);        System.out.println("負數的個數為:" + b);        }    }
root@debian:/home/jeff/java_coding/day004# java deadforloop 請輸入一個整數:12請輸入一個整數:11請輸入一個整數:0正數的個數為:2負數的個數為:0

  迴圈嵌套

嵌套迴圈:迴圈中還可以聲明迴圈。相當於內層迴圈的整體充當外層迴圈的迴圈體for(;;){    for(;;){            }}
while(){    for(;;){}}

   迴圈之列印各種姿勢的*

class mystar{    public static void main(String[] args){        for(int i = 0;i<4;i++){//外層迴圈            for(int j = 0;j<5;j++){//內層迴圈                System.out.print("*");            }            System.out.println();//每層換行        }    }}

  運行結果:

root@debian:/home/jeff/java_coding/day004# java mystar ********************
class mystar1{    public static void main(String[] args){        for(int i = 1;i<5;i++){//外層迴圈            for(int j = 0;j<i;j++){//內層迴圈                System.out.print("*");            }            System.out.println();//每層換行        }    }}

  運行結果:

root@debian:/home/jeff/java_coding/day004# java mystar1 **********
class mystar2{    public static void main(String[] args){        for(int i = 4;i>0;i--){//外層迴圈            for(int j = 0;j<i;j++){//內層迴圈                System.out.print("*");            }            System.out.println();//每層換行        }    }}

  運行結果:

root@debian:/home/jeff/java_coding/day004# java mystar2 **********
class mystar3{    public static void main(String[] args){        for(int i = 1;i<6;i++){//外層迴圈            for(int j = 0;j<i;j++){//內層迴圈                System.out.print("*");            }            System.out.println();//每層換行                    }        for(int m = 4;m>0;m--){//外層迴圈            for(int n = 0;n<m;n++){//內層迴圈                System.out.print("*");            }            System.out.println();//每層換行        }    }}

  運行結果:

root@debian:/home/jeff/java_coding/day004# java mystar3 *************************
class mystar4{    public static void main(String[] args){        for(int i = 1;i<6;i++){//外層迴圈            for(int j = 0;j<5-i;j++){//內層迴圈                System.out.print(" ");            }            for(int j = 0;j<i;j++){//內層迴圈                System.out.print("* ");            }            System.out.println();//每層換行        }        for(int i = 4;i>0;i--){//外層迴圈            for(int j = 1;j<6-i;j++){//內層迴圈                System.out.print(" ");            }            for(int j = 0;j<i;j++){//內層迴圈                System.out.print("* ");            }            System.out.println();//每層換行        }    }}

  運行結果:

root@debian:/home/jeff/java_coding/day004# java mystar4     *    * *   * * *  * * * * * * * * *  * * * *   * * *    * *     * 

  乘法口訣

class chengfabiao{    public static void main(String[] args){        for(int i = 1;i<10;i++){//外層迴圈            for(int j = 1;j<=i;j++){//內層迴圈                System.out.print(i+"*"+j+"="+i*j+" ");            }            System.out.println();//每層換行        }    }}

  運行結果:

root@debian:/home/jeff/java_coding/day004# java chengfabiao 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 

   求100000以內的質數:

/*100以內的所有質數*/class zhishu{    public static void main(String[] args){        boolean flag = false;        long start = System.currentTimeMillis();//擷取系統當前的毫秒數        for(int i = 2;i <= 100000;i++){//實現100以內的自然數的遍曆            //如何判斷i是否為一個質數            for(int j = 2;j <= Math.sqrt(i);j++){                if(i % j == 0){                    flag = true;                    break;                }            }            if(!flag){//if(flag == false){                System.out.println(i);            }            flag = false;        }        long end = System.currentTimeMillis();        System.out.println("所花費的時間為:" + (end - start));    }}

  花費時間103毫秒。

  break結束當前迴圈,continue結束當次迴圈。其他語言也是這樣使用的。在break和continue語句之後不能添加其他語句,因為永遠也不可能被執行!

  break與continue跳出多層的最外層:

class breakcontinue{    public static void main(String[] args) {            label:for(int i = 1;i < 5;i++){            for(int j = 1;j <= 10;j++){                if(j % 4 == 0){                    //break;                    //continue;                    break label;                    //continue label;//跳出此標籤的本次迴圈,此處時最外層的本次迴圈                }                System.out.print(j);            }            System.out.println();        }    }}

  用此方法求100000以內的質數。

class zhishu1{    public static void main(String[] args){        long start = System.currentTimeMillis();//擷取系統當前的毫秒數        l:for(int i = 2;i <= 100000;i++){//實現100以內的自然數的遍曆            //如何判斷i是否為一個質數            for(int j = 2;j <= Math.sqrt(i);j++){                if(i % j == 0){                    //一旦被其他數整除就跳出最外層的迴圈測試下一個資料;                    continue l;                }            }                System.out.println(i);        }        long end = System.currentTimeMillis();        System.out.println("所花費的時間為:" + (end - start));    }}

   本節代碼託管到我的github:day004。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.