我正处于Java学习阶段,我已经完成了基础教程等,但我需要加强编码的复杂性。虽然代码大战的第一课似乎超出了我的范围:(
我并不是特别寻找答案(作弊),但也许有人可以批评(我很少)我所做的,并指出我正确的方向。这是个问题:
编写一个可以返回数组最小值的函数 该值的索引。函数的第二个参数将告诉它是否正确 应该返回值或索引。
假设第一个参数将始终是一个用at填充的数组 至少1个数字,没有重复。假设第二个参数是 包含两个值之一的字符串:' value'和'索引'。
这是我的初始代码......
public class Arrays {
public static int findSmallest( final int[] numbers, final String toReturn ) {
//TODO: Add solution here
int smallest = numbers[0];
for (int i = 0; i < numbers.length; i++)
{
if (numbers[i] <= smallest)
{
smallest = numbers[i];
}
}
return smallest;
System.out.println(smallest);
}
}
错误:
/Arrays.java:14:错误:无法访问的语句 的System.out.println(最小); ^ /Arrays.java:16:错误:缺少返回 声明} ^ 2错误
我一直在抨击我用来推进这一挑战的整体逻辑。任何人都可以指出我的方式的错误吗?感谢您阅读一篇啰嗦的描述,这是一个非常简单的问题....
*编辑 - 请注意我甚至没有开始处理挑战的第一部分,即区分返回数组中的值或位置。
答案 0 :(得分:2)
你应该在return语句之后删除$i=0;
foreach ($array as $grid) {
$name = $grid->name;
$address = $grid->address;
echo '<li> <a href="javascript:myclick('.$i.');" title="">' . $name . '</a> </li>';
$i++;
}
,因为它永远不会被到达(或者把它放在return语句之前)。
System.out.println(smallest);
答案 1 :(得分:0)
您是否考虑过使用Stream.min以更实用的方式执行此操作?
我的Java有点生疏但我相信你应该可以做这样的事情:
int main()
{
static int r1,r2;
void *result;
pthread_t t1, t2;
int i1[] = {1,2};
int i2[] = {3,4};
r1 = pthread_create( &t1, NULL, myfn, (void*)i1);
r2 = pthread_create( &t2, NULL, myfn, (void*)i2);
pthread_join( t1, &result );
r1 = (int)result;
pthread_join( t2, &result );
r2 = (int)result;
printf("Thread 1 returns: %d\n",r1);
printf("Thread 2 returns: %d\n",r2);
return 0;
}
将int数组转换为流的一行代码然后在其上运行min比较器以返回最小的数字。
答案 2 :(得分:0)
虽然 Eran 的答案涵盖了所有内容,但我将此代码包含在第二个参数中。 :)
注意,return语句会导致执行离开当前子例程,并在调用子例程之后立即恢复代码中的点。
How to compare strings in Java。
以下是代码:
public Users Get(string Email)
{
Users user = db.Users.Find(Email);
if (user == null)
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
}
return user;
}