簡體   English   中英

不確定在這種情況下如何執行while循環

[英]Not sure how to do a while loop in this situation

我正在編寫一個程序來接受序列的輸入

import java.util.Scanner;

公共類FibonacciCode {

public static void main(String[] args) {

    System.out.println("Enter a number");

    int count, number0 = 0, number1 = 1, loop = 0;

    Scanner userInput = new Scanner(System.in);
    count = userInput.nextInt();

    while(loop > count)
    {
        System.out.print(number0 + ", ");

        int sum = number0 + number1;
        number0 = number1;
        number1 = sum;
        loop++;
    }
}

}

這應該是一個可用的實現:

public class Menu {

    public static void main(String[] args) {
        Scanner a = new Scanner(System.in);
        boolean orderCompleted = false;
        while(!orderCompleted) {
            printMenu();
            String orderString = a.nextLine();
            int order = Integer.parseInt(orderString);
            int total = 0;
            if(order == 1) {
            } else if(order == 2) {
            } else if(order == 3) {
            } else if(order == 4) {
            } else if(order == 5) {
            }
            System.out.println("Would you like to order more? Press 'y' to continue or 'n' to finish order.");
            orderString = a.nextLine();
            if(orderString.equals("n")){
                orderCompleted = true;
            }
        }
    }

    private static void printMenu() {
        System.out.println("Welcome to Hess Burgers");
        System.out.println("1- Cheeseburger.............$7");
        System.out.println("2- Barbeque Burger..........$8");
        System.out.println("3- Southwestern Burger......$9");
        System.out.println("4- Bacon Cheeseburger.......$10");
        System.out.println("5- Double Stack Burger......$11");
        System.out.println("");
        System.out.print("Please enter your order selection:");
    }
}

我將菜單打印拉到一個單獨的方法,並重新使用了掃描儀a以及重新使用了orderString。 while循環檢查completedOrder布爾標志,以便在需要時可以用於退出訂單循環之前完成任務。

導入java.util.Scanner; 公共類FibonacciCode {

public static void main(String[] args) {

    System.out.println("Enter a number");

    int count, number0 = 0, number1 = 1, loop = 0;

    Scanner userInput = new Scanner(System.in);
    count = userInput.nextInt();

    while(loop > count)
    {
        System.out.print(number0 + ", ");

        int sum = number0 + number1;
        number0 = number1;
        number1 = sum;
        loop++;
    }
}

}

只要條件為真,while循環就會執行塊中的所有操作,在您的情況下,您只是重復執行order = b.nextInt()直到輸入“ y”以外的值

while (continuePlay= b.nextLine().equalsIgnoreCase ("y")) {
        order = b.nextInt(); // This is inside the block
    }

您應該改為使用do while循環,如下所示:

do{
    System.out.println("Welcome to Hess Burgers");
    System.out.println("1- Cheeseburger.............$7");
    System.out.println("2- Barbeque Burger..........$8");
    System.out.println("3- Southwestern Burger......$9");
    System.out.println("4- Bacon Cheeseburger.......$10");
    System.out.println("5- Double Stack Burger......$11");
    System.out.println("                               ");
    System.out.print("Please enter your order selection:");

    Scanner a = new Scanner(System.in);
    int order = a.nextInt();

    int total = 0;
    boolean continuePlay = true;

    if (order == 1 ) {

    } else if (order == 2) {

    } else if (order == 3) {

    } else if (order == 4) {

    } else if (order == 5) {
    }
    Scanner b = new Scanner(System.in);

    System.out.println("Would you like to order more? Press 'y' to continue or 'n' to finish order.");
    } while (continuePlay= b.nextLine().equalsIgnoreCase ("y"));

另外,我建議您閱讀一些基本的編程書籍或教程,而不是直接進入Stack Overflow。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM