在这种情况下,不确定如何进行while循环

时间:2017-12-06 01:04:26

标签: java

我正在编写一个程序来获取序列的输入

import java.util.Scanner;

public class 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++;
    }
}

}

3 个答案:

答案 0 :(得分:1)

这应该是一个可用的实现:

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布尔标志,以便在退出订单循环时可以使用它来完成任务,如果需要的话。

答案 1 :(得分:1)

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++;
    }
}

}

答案 2 :(得分:0)

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。