如何解决Java - 使用 user
我正在尝试编写一个程序,允许在无限循环内生成随机数。如果用户按“c”,它将退出循环。但是循环只在我按下 c 时开始,它应该在之前开始,当我按下 'c' 时它应该停止。
import java.util.Random;
import java.util.Scanner;
public class main{
public static void main (String[] args) {
Random rand = new Random();
int[] randNumber = new int[100];
Scanner scanner = new Scanner(System.in);
char c = scanner.next().charAt(0);
do {
for (int i = 0; i <= 99; i++) {
randNumber[i] = rand.nextInt(100);
}
for (int i = 0; i < 99; i++) {
if (randNumber[i] < randNumber[i + 1]) {
System.out.println("Number " + randNumber[i] + " smaller than " + randNumber[i + 1]);
} else if (randNumber[i] > randNumber[i + 1]) {
System.out.println("Number " + randNumber[i] + " greater than " + randNumber[i + 1]);
} else if (randNumber[i] == randNumber[i + 1]) {
System.out.println("Number " + randNumber[i] + " equal to " + randNumber[i + 1]);
} else {
System.out.println("Wrong!");
}
}
} while (c == 'c');
}
}
另外,我想知道如何仅使用 while 循环而不是 do-while 循环来执行此程序。当我只在从 while(1)
开始时使用时,然后使用来自输入的 if 语句中断循环,但这也不起作用。内部仍然有两个 for 循环。
非常感谢
解决方法
关于第一个查询,移动你在 do-while 循环中输入的代码行,这样在每次迭代后它会要求输入,如果你输入'c',它会继续,否则它会中断自由。 关于第二个查询,如果您使用 while(1) 并使用 if 语句检查 'c' 的用户输入并在用户输入 'c' 时中断,它应该可以工作。
,您需要在循环内请求用户输入;否则,c
永远不会改变。
Random rand = new Random();
int[] randNumber = new int[100];
Scanner scanner = new Scanner(System.in);
// Just set it to 'c' as default so it enters the loop at least once. IMO this is better than an infinite loop with breakout or having another default value for c and checking it,or using a do while loop
char c = 'c';
while (c == 'c') {
for (int i = 0; i <= 99; i++) {
randNumber[i] = rand.nextInt(100);
}
for (int i = 0; i < 99; i++) {
if (randNumber[i] < randNumber[i + 1]) {
System.out.println("Number " + randNumber[i] + " smaller than " + randNumber[i + 1]);
} else if (randNumber[i] > randNumber[i + 1]) {
System.out.println("Number " + randNumber[i] + " greater than " + randNumber[i + 1]);
} else if (randNumber[i] == randNumber[i + 1]) {
System.out.println("Number " + randNumber[i] + " equal to " + randNumber[i + 1]);
} else {
System.out.println("Wrong!");
}
}
// Ask for the next input
char c = scanner.next().charAt(0);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。