0

我正在为 ImageJ 编写一个插件,在我的代码的这一部分中,我希望在数组中找到包含最大数字的索引。

int index1 =0;

    for(int k=1; k<array.length; k++)
    {
    IJ.showMessage("array[k] "+array[k]+" value "+value);    

    if (array[k]>value);
        {
                value = array[k];

                index1=k;

        }
    }

array[] 是一个 20 索引整数数组。

代码编译,当我运行它时,一系列消息窗口说:

  1. “数组[k] 6037 值 2030”
  2. “数组 [k] 11544 值 6037”
  3. “数组 [k] 12287 值 11544”
  4. “数组[k] 7369 值 12287”,最后:
  5. “数组 [k] 2873 值 7369”

如果我的 > 运算符工作正常,那么为什么语句 5 显示相反?

感谢您的时间

贝特曼

4

3 回答 3

11

改变

if (array[k]>value);

if (array[k]>value)
于 2013-02-28T10:59:55.313 回答
3

去除 ”;” 排队

如果(数组[k]>值){

这 ”;” 是在条件为真时执行的空语句。下面的花括号块永远执行。
在 Eclipse 中使用 checkstyle 插件,这应该警告空语句。

于 2013-02-28T11:00:28.297 回答
3

你有一个尾随 ; 在你的如果之后。

于 2013-02-28T11:00:33.460 回答