2013-02-28 54 views
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值”

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

谢谢您的时间

贝特曼

回答

11

变化

if (array[k]>value); 

if (array[k]>value) 
+0

谢谢,我明显一直在盯着屏幕太久! – bateman 2013-02-28 11:01:56

+2

我建议如果您使用eclipse(但我猜这也适用于netbeans),请使用代码格式化程序,并在保存操作时使用基本代码格式化程序,例如在保存代码时可以看到这些错误。 – CsBalazsHungary 2013-02-28 11:06:14

+2

@CsBalazsHungary:虽然我同意使用代码格式化程序,但它可以使用或不使用分号进行缩进。 – 2013-02-28 11:07:59

3

删除 “;”在管线

如果(阵列[K]>值){

的 “;”是条件为真时执行的空语句。以下花括号块被执行过。
在eclipse中使用checkstyle插件,这应该警告有关空的语句。

3

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

相关问题