【发布时间】:2017-05-14 12:24:20
【问题描述】:
所以我试图找出数组a是否是数组b的子集,我的代码如下:`
public class subset {
public static boolean subset(int[]a, int[] b) {
for(int i=0;i<a.length;i++){
for(int j=0;i<a.length;j++){
if(a[i]==b[j]){
return true;
break;
}else{
return false;
}
}
}
}
public static void main(String[]args){
int[] a = {1,2,6};
int[] b = {1,2,4,3,7,4,8,5};
if (subset(a,b))
System.out.println("Array 1 is contained in Array 2");
else
System.out.println("Array 1 is not contained in Array 2");
}
}
我收到以下错误:无法访问的语句和缺少返回语句。 我想要做的是,当 if 条件为真时,它会停止内部 for 循环并继续外部 for 循环。 在此先感谢
【问题讨论】:
-
return从方法中退出,这意味着在该方法中放置的任何代码(此处为break)都不会执行,这就是您看到此错误的原因。如果return在try部分中,则只有finally部分例外。 -
你的内循环错了;它一直计数到
a.length,而您显然希望它一直计数到b.length,因为变量j循环通过b,而不是a。