make while while循环和for循环打印出与while循环相同的东西?

时间:2017-11-07 19:08:54

标签: java loops for-loop do-while

大家好,我遇到了问题,无法提出解决方案。我正在使用while循环,while while循环和for。我知道我的前两个while循环是正确的,我想要完成的是我的do while循环和语句打印出与我的第二个while循环相同的东西。

import java.util.Scanner;

public class CountingLoops{
    public static void main(String[] args){
        String message; // First message prompt
        String inputString; // For reading input.
        double numRows; // Number to be asked.
        double rowNumber = 1;

        Scanner keyboard = new Scanner(System.in);
        System.out.println("Enter the message you want to print? ");
        message = keyboard.nextLine();
        System.out.println ("Enter how many times you want your message to be printed. Enter the value from 1-20:" );
        numRows = keyboard.nextDouble();

        while (numRows > 20 || numRows < 1){
            System.out.println("Number was not between 1-20. Try Again.");
            System.out.println("Enter how many times you want your message to be printed. Enter the value from 1-20: ");
            numRows = keyboard.nextDouble();
        }
        System.out.println("Output using while loop...");
        while (numRows > 0){
            System.out.println("Row " + rowNumber + " - " +  message);
            rowNumber++;
            numRows--;
        }
        System.out.println("Times in while loop:" + numRows);
        System.out.println("Output using do-while loop...");

        do  {
            System.out.println("Row " + rowNumber + " - " + message);
            numRows--;
            rowNumber++;
        } while (numRows > 0);

        System.out.println("Times in do-while loop..." + numRows);
        System.out.println("Output using for-loop:");

        for (numRows = 1; numRows < 20; numRows++){
            System.out.println("Row " + rowNumber + " - " + message);
            numRows--;
            rowNumber = keyboard.nextDouble();
        }
    }
}

输入要打印的信息?

您好

输入您希望打印消息的次数。输入1-20:

中的值

5

使用while循环输出...

第1.0行 - 你好

第2.0行 - 你好

第3.0行 - 你好

第4.0行 - 你好

第5.0行 - 你好

while循环中的时间:0.0

使用do-while循环输出......

第6.0行 - 你好

do-while循环中的时间......- 1.0

使用for-loop输出:

第7.0行 - 你好

(这是我运行程序时打印的内容,我要打印的内容如下所示)

使用while循环输出...

第1.0行 - 你好

第2.0行 - 你好

第3.0行 - 你好

第4.0行 - 你好

第5.0行 - 你好

while循环中的时间:5

使用do-while循环输出......

第1.0行 - 你好

第2.0行 - 你好

第3.0行 - 你好

第4.0行 - 你好

第5.0行 - 你好

do while循环中的次数:5

使用for-loop输出...

第1.0行 - 你好

第2.0行 - 你好

第3.0行 - 你好

第4.0行 - 你好

第5.0行 - 你好

for循环中的时间:5

2 个答案:

答案 0 :(得分:0)

你在第一个循环(while循环)中递减numRows。您需要为每个要使用的循环保留numRows的值。另外,为每个循环将rowNumber重置为1.

答案 1 :(得分:0)

您在循环中递减numRows,但从未将其设置回原始值。

        String message; // First message prompt
        String inputString; // For reading input.
        double numRows; // Number to be asked.
        double rowNumber = 0;

        Scanner keyboard = new Scanner(System.in);

        System.out.println("Enter the message you want to print? ");
        message = keyboard.nextLine();
        System.out.println("Enter how many times you want your message to beprinted.Enter the value from 1-20:");
        numRows = keyboard.nextDouble();

        double currentRow = numRows;
        while (currentRow > 0) {
            System.out.println("[WHILE] Row " + rowNumber + " - " + message);
            rowNumber++;
            currentRow--;
        }

        System.out.println("Times in while loop:" + rowNumber);
        System.out.println("Output using do-while loop...");
        currentRow = numRows;
        rowNumber = 1;

        do {
            System.out.println("[DO WHILE] Row " + rowNumber + " - " + message);
            currentRow--;
            rowNumber++;
        } while (currentRow > 0);

        System.out.println("Times in do-while loop..." + numRows);
        System.out.println("Output using for-loop:");
        currentRow = numRows;
        rowNumber = 1;

        for (double i = currentRow; currentRow > 0; currentRow--) {
            System.out.println("[FOR LOOP] Row " + rowNumber + " - " + message);
        }