Java noob,代码大战课程#1 - 数组的最小值

时间:2015-06-21 09:32:54

标签: java arrays

我正处于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错误

我一直在抨击我用来推进这一挑战的整体逻辑。任何人都可以指出我的方式的错误吗?感谢您阅读一篇啰嗦的描述,这是一个非常简单的问题....

*编辑 - 请注意我甚至没有开始处理挑战的第一部分,即区分返回数组中的值或位置。

3 个答案:

答案 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;
    }