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;
}
解决方案 »
- 关于string的初始化问题
- 求查找字符串中的字串,并把子串替换为指定的新子串的java算法。不能用java中的所以现成的替换方法。要自己写算法实现
- 请教“Quartz”这个框架的启动方式。
- 关于Eclipse下开发GUI应用程序插件问题
- 关于类继承的基础问题
- 如何配置使APPLET在应用中可以自动下载!(高手进)
- 各位大虾:如何编程更改本机的ip地址?
- jb6中如何建立SQL Server2000的datasource?
- swing界面美化是出错了,大家看看是怎么回事
- Java 如何延续对象的生命 当有人访问的时候+1分钟 没人访问的时候销毁对象
- 关于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的地方继续循环啊。