谁来帮我看看这个JAVA程序

来源:百度知道 编辑:UC知道 时间:2024/07/05 19:14:55
class PP
{
public static void main(String args[])
{
int i=0,j=0,m=0;
int s[]={1,2,4,1,2,3,5};
int t[]={1,2,3};
while(j<t.length-1)
{
while(s[i]==t[j])
{
i++;
j++;
if(j>t.length)

break;
}
if(s[i]!=t[j])
{
j=0;
m++;
i=m;

}
}
if(j==t.length)
System.out.println("chenggong");
if(j!=t.length)
System.out.println("shibai");
}
}
我要进行匹配。可是总是编译错误。

public class PP {
public static void main(String args[]){
int i=0,j=0;
int[] s={1,2,4,1,2,3,5};
int[] t={1,2,3};
while(j < t.length){
if(s[i]== t[j]){
i++;
j++;
if(j>=t.length)break;
}
if(s[i]!=t[j]){
j=0;
i++;
if(i >= s.length)break;
}
}
if(j==t.length)
System.out.println("chenggong");
if(j!=t.length)
System.out.println("shibai");
}
}
试试这个。

错误代码发来看看。

if(j>t.length)

改成 >=

还是有问题,不过下班了要走了,逻辑有点乱

数组下标越界了。。。。
while(s[i]==t[j])
{
i++;
j++;
if(j>t.length)

break;

就是这段。。。 你自己想想 如果 都匹配了 那么的话i与j不是相等了!
那么的话你下面的那行代码
if(s[i]!=t[j]) j与i相等都加了 那么就是3 而j所用的数组有4个吗?

j 是不是越界了?
改改就ok了
class PP
{
public static void main(String args[])
{

int i=