我需要一个程序来随机生成一个数字,然后将那个数量的x放在自己的行上,直到它输出一行16 x,然后它就会停止。到目前为止,我的程序生成了一个数字,但从未停止输出。我确定这是我的错误,但不确定需要改变什么。这是我现在的代码。
import java.util.Random;
public static void main(String[] args)
{
toBinary();
randomX();
}
public static void randomX()
{
Random num = new Random();
int ran = num.nextInt(16+1);
int xs = ran;
while(xs <= 16)
{
System.out.print("x");
}
}
答案 0 :(得分:2)
要解决此问题,请考虑您可能需要的循环 你需要打印x一定次数,这是一个循环。我还引入了一个变量来跟踪这种打印 你需要保持打印,直到你达到16.这是另一个循环。
public static void randomX(){
Random num = new Random();
int xs = 0;
//This loop keeps going until you reach 16
while(xs <= 16){
xs = num.nextInt(16+1);
int x = 0;
//This loop keeps going until you've printed enough x's
while (x < xs)
{
System.out.print("x");
x++;
}
System.out.println("")
}
}
答案 1 :(得分:2)
您的版本存在许多小问题。这是一组建议的修订。
// create your random object outside the method, otherwise
// you're instantiating a new one each time. In the long run
// this can cause awkward behaviors due to initialization.
public static Random num = new Random();
public static void randomX(){
int ran;
do {
ran = 1 + num.nextInt(16); // move the +1 outside unless you actually want 0's
int counter = 0;
while(counter++ < ran) {
System.out.print("x");
}
System.out.println(); // add a newline after printing the x's in a row
} while(ran < 16);
}
最大的问题是你需要两个循环,一个用于生成新数字的外循环和一个用于打印当前x数的内循环。
第二个问题是你的循环正在检查数字&lt; = 16.你的所有值都是&lt; = 16,所以这是一个无限循环。
评论中的其他建议。
答案 2 :(得分:1)
您可以使用辅助计数器来管理循环并增加它以退出循环。
int i = 0;
while (i<xs){
System.out.print("x");
i++;
}
您可以在此处查看有关java循环的更多信息: