L1:for(i=k;i<25;i++)
{
k=i;
str1[i]=(int)(Math.random()*25+1);
for(j=i-1;j>=0;j--)
if(str1[i]==str1[j])
continue L1;
}
{
k=i;
str1[i]=(int)(Math.random()*25+1);
for(j=i-1;j>=0;j--)
if(str1[i]==str1[j])
continue L1;
}
解决方案 »
- 新手java debug使用请教
- 学习jstatd的问题
- 做了个程序 老师说没有任何用处
- 如何位图合成内存限制问题
- 用Java的ftpClient来实现FTP客户端,如何实现下载全部内容?
- 因为是一个公共类,里面的所有的方法是public的,这样多个用户可能会发生同时操作的现象,这种情况下,要不要将所有的方法都用 synchroni
- 使用SESSION BEAN 调用 ENTITY BEAN时的错误
- 如何用java读取初始化文件(.ini)
- 我是java的初学者,问一个很菜的问题,还望各位指教!!
- servlet访问路径的问题
- 关于PreparedStatement的问题!!!各位进来看一下
- 高分请教银行socket问题!!几乎崩溃。。。。
{
k=i;
str1[i]=(int)(Math.random()*25+1);
for(j=i-1;j>=0;j--)
if(str1[i]==str1[j])
{ i--;
continue L1;
}
}
{
k=i;
str1[i]=(int)(Math.random()*25+1);
for(j=i-1;j>=0;j--)
if(str1[i]==str1[j])
continue L1;
}
你这里能保证str1中的元素不同吗。你的是随即数字,只是保证像临的两个元素不同。
import java.io.*;
public class str25
{
public static void main(String[] args) throws IOException{
int m=0;
int n=0;
int i=0;
int j=0;
int k=0;
int[] str1=new int[25];
int[][] str2=new int[5][5];
while(true)
{
L1:for(i=k;i<25;i++){
k=i;
str1[i]=(int)(Math.random()*25+1);
for(j=i-1;j>=0;j--){
if(str1[i]==str1[j]){
i--;
continue L1;
}
}
}
break;
}//END WHILE
for(i=0;i<5;i++){
for(j=0;j<5;j++){
str2[i][j]=str1[m];
++m;
System.out.print(str2[i][j]+",");
++n;
if(n==5){
System.out.println();
n=0;
}
}
}
}// END MAIN
}//END CLASS
谢谢。你的答案是对的。但我看了好久还是没搞清楚为什么要在if里加一个i--. :( 你能为我解释一下吗?:D
我上面改的也应该是对的。。我试过的
恩,你的也是对的。我是新手,还请多多help啊。^_^但我还是不明白,for(j=i-1;j>=0;j--) if(str1[i]==str1[j])循环为什么不能保证所有的元素不相同呢?
continue L1.应该是转向标号L1的地方继续循环啊。