大家好,我遇到了问题,无法提出解决方案。我正在使用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
答案 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);
}