所以我很难理解增强的循环..
编写一个名为contains()的方法,该方法接受一个整数数组和一个整数值。如果数组包含指定的值,则该方法应返回true,否则返回false。
boolean contains (int [] x, int y) {
for (y : x) {
}
}
我真的不知道他们的工作方式我显然需要退货吗?
答案 0 :(得分:6)
如果您想检查数组y
中包含的数字x
,您应该执行以下操作:
boolean contains (int [] x, int y) {
for (int i : x) {
if (i == y) return true;
}
return false;
}
此类for
循环通常称为for-each
。 int i : x
基本上意味着Go through the loop 'x' and name the current variable 'i'
。然后,如果当前变量i
等于您要查找的变量(在您的情况下为y
),则return true
。
答案 1 :(得分:0)
增强的for循环不起作用。
for (int i : x) // int(in this case) is necessary at left side and array type is necessary at right side
{
}
也要使用用户定义的集合,那么你应该实现 Iterable 接口,以便像上面使用的那样使用foreach循环。您将在Collection框架中看到这些概念。
答案 2 :(得分:0)
你需要迭代数组中的项目,并检查其中一个是y
,你正在寻找的int。
我从你的问题中假设你对正常的循环感觉更舒服:
boolean contains (int [] x, int y) {
for (int i = 0; i < x.length; i++) { //loop over each item in the array
if (x[i] == y) return true; //if the i-th item in x is y,
//you are done because y was in x
}
return false; //you have not found y, so you return false here
}
boolean contains (int [] x, int y) {
for (int item : x) { //in this loop, item is x[i] of the previous code
if (item == y) return true;
}
return false;
}
for (Type item : array)
。例如,您不能通过在循环之前声明变量来省略Type
。答案 3 :(得分:0)
使用普通for循环,你会写这样的东西:
boolean contains (int [] x, int y) {
for (int i=0; i<x.length; i++) {
if(y == x[i] return true;
}
return false;
}
然而,使用增强型循环,可以简化如下。
boolean contains (int [] x, int y) {
for (int k: x) {
if(y == k) return true;
}
return false;
}
这只是一个小小的便利。
您可能会发现以下内容有用:https://blogs.oracle.com/CoreJavaTechTips/entry/using_enhanced_for_loops_with