for 循环问题,求解,不知道怎么回事?
import java.util.*;public class LotteryDrawing
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int k = in.nextInt();
int n = in.nextInt();
int[] numbers= new int[n];
for(int i=0;i<numbers.length;i++)
numbers[i]=i+1;
int[] result = new int[k];
for(int i=0;i<result.length;i++)
{
int r =(int)(Math.random()*n);
result[i]=numbers[r];
numbers[r]=numbers[n-1];
n--;
}
Arrays.sort(result);
for(int r:result) //我觉得如改成for(int i:result) {System.out.println(i);}也可以输出也是对的
System.out.println(r); //r不是随机数吗?r 又不是从零开始怎么循环啊????
}
}
//本人菜鸟一枚,谢谢大虾指导
----------------解决方案--------------------------------------------------------
int[] numbers= new int[n];
这行的n是个变量,不能作为长度。
其他的你再看看
----------------解决方案--------------------------------------------------------
int n = in.nextInt();
这不是要输入个数字吗???
输个n不就确定了吗????
----------------解决方案--------------------------------------------------------
我只想说程序木有问题
----------------解决方案--------------------------------------------------------
算了,我自己弄懂了
不过也要表示感谢
----------------解决方案--------------------------------------------------------
这个只能说
呵呵
----------------解决方案--------------------------------------------------------
for(int r:result)
这个是加强for循环 语法格式: for (<集合中元素的数据类型> <这个可以随便起名> : <存储元素的集合>) {}
----------------解决方案--------------------------------------------------------
你用for(int i/r ...) 都没关系了,这里是重新定义的int变量 ,和上面的i,r没有关系,这些变量不在同一个作用域内
----------------解决方案--------------------------------------------------------