Java循環語句


循環語句

循環語句:

當某個條件滿足時反復執行一段代碼塊,直到這個條件不滿足時跳出循環繼續執行后面的代碼。

循環語句有3種

while

do whi

for

 

學循環語句需要確定哪些事情

循環幾次,什么時候退出,循環的內容。

 

while循環語句:

while循環開始后,先判斷條件是否滿足,如果滿足就執行循環體內的語句,執行完畢后再回來判斷條件是否滿足,如此無限重復;直到條件不滿足時,執行while循環后邊的語句。簡單來講就是說while循環是先判斷后循環, 判斷如果滿足條件進入循環 本次循環后再次判斷 。舉個例子:

  

while(布爾表達式 ){
                 //循環內容
     
             
     
}

 

do while

先執行do 后面的內容再循環

do {
       //代碼語句
}while(布爾表達式)

 

for循環

for(初始化; 布爾表達式; 更新){  
     //
     代碼語句
     
     
 }

 

嵌套的循環語句: 循環語句可以互相嵌套 循環語句可以和分支語句互相嵌套

控制語句

控制語句有:

break語句

continue語句

return語句

 

break語句:

在switch語句中,跳出switch語句執行后面的代碼 在循環語句中,跳出循環執行后面的代碼 配合if語句使用,當滿足某一條件時跳出循環 在嵌套的循環語句中,配合標簽跳出指定的循環語句 break語句只能跳出離自己最近的循環語句,如果要跳出多個循環語句,需要配合標簽使用

for ( int i = 1; i < 9; i++ ) {
    for ( int j = 1; j < 9; j++ ) {
        if ( j > 5 ) {
            break;
        }
    }
}

跳出循環用loop

loop: for ( int i = 1; i < 9; i++ ) {
    for ( int j = 1; j < 9; j++ ) {
        if ( j > 5 ) {
            break loop;
        }
    }
}

 

continue語句:

在循環語句中,跳出本次循環重新判斷循環條件 配合if語句使用,當滿足某一條件時跳出本次循環 在嵌套的循環語句中,配合標簽跳出指定的循環語句的本次循環過程 同break語句

 

break語句和continue語句在使用時的區別:

 

 

 

return語句:

退出函數

如果函數為主函數,則退出程序

 

死循環

 

 

 

死循環不是錯誤,有些程序需要死循環。

如果一個循環中包含break語句,就不是死循環。

 

實現一個ATM項目:

實現一個ATM,程序啟動后要求輸入密碼,如果密碼正確,則進入主界面,否則再次要求輸入密碼,連續三次輸入錯誤則退出程序。

在主界面中有四個選項,分別為查詢余額、存款、取款和退出,用戶選擇相應的功能后會有對應的提示引導用戶進行操作,如果用戶選擇退出,則退出本程序,否則再次顯示主界面。

 

 

 

 

 

 

初始化模塊:

初始化登錄密碼 6位數字,使用int類型

初始化賬戶余額 余額為任意的數值,使用double類型

初始化Scanner

 

int password = 123456;
double balance = 100000.00D;
Scanner scanner = new Scanner( System.in );

 

登錄模塊:

驗證密碼

用戶有三次輸入密碼的機會,重復的操作並且次數確定,使用for循環語句

每次都要輸出的提示信息使用輸出語句輸出

使用輸入語句讀取用戶輸入的一個整數

判斷是否和初始密碼相等,不相等則繼續循環,相等則跳出,使用if語句和break語句

為了能夠判斷是密碼正確跳出循環還是三次輸入不正確跳出循環,需要使用一個boolean類型的變量做標記

 

boolean validity = false;
for ( int i = 0; i < 3; i++ ) {
    System.out.println( "請輸入密碼:");
    int input = scanner.nextInt();
    if( input == password ) {
        validity = true;
        break;
    } else {
        System.out.println( "密碼錯誤!");
    }
}

 

業務模塊: 輸出菜單

如果密碼正確,則進入此模塊

只要用戶不選擇退出,就重復輸出菜單等待用戶選擇,不確定次數,使用while循環或do-while循環均可

使用多個輸出語句輸出菜單項,每個菜單項前有對應編號

用戶輸入對應菜單項的編號,進入相應的功能,使用switch語句

 

if ( validity ) {
    while ( true ) {
        System.out.println( "請選擇功能:" );
        System.out.println( "1\t查詢余額:" ); 
        System.out.println( "2\t存款:" ); 
        System.out.println( "3\t取款:" ); 
        System.out.println( "4\t退出:" );
        int input = scanner.nextInt();
        ……
    }
}
if ( validity ) {
    while ( true ) {
        ……
        switch ( input ) {
            case 1:    ……
            case 2:    ……
            case 3:    ……
            case 4:    ……
        }
    }
}

 

業務模塊: 查詢余額

用戶選擇1時,輸出當前用戶的余額

case 1:
    System.out.println( "您的余額為:" + balance 
        + "元");
    break;

 

業務模塊:

存款

提示用戶輸入金額

修改用戶的余額 使用if語句判斷用戶輸入是否合法,並提示用戶存款是否成功

case 2:
    System.out.println( "請輸入存款金額:" );
    double money = scanner.nextDouble();
    if ( money > 0 ) {
        balance += money;
        System.out.println( "存款成功!" ); 
    } else {
        System.out.println( "存款失敗! " ); 
    }
    break;

 

 

業務模塊: 取款

提示用戶輸入金額

修改用戶的余額

使用if語句判斷用戶輸入是否合法,並提示用戶存款是否成功 判斷余額是否大於用戶取款的金額

 

case 3:
    System.out.println( "請輸入取款金額:" );
    double money = scanner.nextDouble();
    if ( money > 0 && balance >= money ) {
        balance -= money;
        System.out.println( "取款成功!" ); 
    } else {
        System.out.println( "取款失敗! " ); 
    }
    break;

 

 

業務模塊: 退出

跳出while循環,使用break語句

break只能跳出switch,需要配合標簽使用

用戶出入錯誤,提示並輸出菜單,使用default子句

 

loop: while ( true ) {
    ……
    switch ( input ) {
        ……
        case 4:
            break loop;    
        default:
            System.out.println( "請重新選擇" );
            break; 
    }
}

 

完成版:

 

package com.mycode;

import java.util.Scanner;

public class four {
    public static void main(String[] args) {
        int password = 123456;                //定義一個密碼
        double balance = 1000000.0;           //定義賬戶余額
        boolean f = false;                    //定義f不正確
        Scanner scanner = new Scanner(System.in);
        for (int j = 3; j >= 0; j--) {             //輸入密碼次數
            System.out.println("請輸入密碼");

            int a = scanner.nextInt();
            if (a == password) {                   //輸入正確的時候結束
                f = true;
                break;
            } else {                             //否則從新輸入
                System.out.println("密碼錯誤:請從新輸入密碼\n" + "剩余" + j + "次機會");
            }
        }
        loop: while (f) {                       //循環
            if (f == true) {                           //登錄界面
                System.out.println("登錄成功\n\t請選擇你需要的服務");
                System.out.println("1.查詢賬戶余額");
                System.out.println("2.存款");
                System.out.println("3.取款");
                System.out.println("4.取卡");
                int s = scanner.nextInt();            //定義一個輸入選項
                switch (s) {                         //編輯菜單
                    case 1:
                        System.out.println("您的賬戶余額為:" + balance);
                        break;
                    case 2:
                        System.out.println("請輸入你想要存的的金額");
                        double money = scanner.nextDouble();
                        if (money % 100 == 0 & money >= 100) {
                            balance += money;
                            System.out.println("存款成功\n3賬戶余額為:" + balance);
                        }else {
                            System.out.println("請輸入100的倍數");
                        }
                        break;
                    case 3:
                        System.out.println("請輸入你想要取走的金額");
                        double quk = scanner.nextDouble();
                        if (quk <= balance & quk % 100 == 0 & quk >= 100) {
                            balance -= quk;
                            System.out.println("取款成功\n賬戶余額:" + balance);
                        } else if (quk > balance) {
                            System.out.println("您的余額不足。");


                        } else {
                            System.out.println("請輸入100的倍數");

                        }
                        break;
                    case 4:

                        System.out.println("謝謝使用,再見!");
                        break loop;
                }

            }


        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM