此代码无效

时间:2017-10-20 07:54:03

标签: java arrays

当我输入此代码时,我得到答案为58.18

public class text {

    public static void main(String[] args) {
        //Data Array
        double data[]={19.2,22.3,32.51,39,41.16,49.46,55.91,58.18};

        //Finding minimum angle
        double minimum_angle=0;
        for(int counter=0;counter<data.length;counter++){

          if(data[counter]<data[counter++]){
              minimum_angle=data[counter];
          }
          else {minimum_angle=data[counter++];}
        }
        System.out.print(minimum_angle);




    }

}

但是当我通过一点修改键入相同内容时,我得到55.91。为什么会这样?

public class Main_class {
    public static void main(String args[]){

        //Data Array
        double data[]={19.2,22.3,32.51,39,41.16,49.46,55.91,58.18};

        //Finding minimum angle
        double minimum_angle=0;
        for(int counter=0;counter<data.length;counter++){
            double x=data[counter];
            double y=data[counter++];
          if(x<y){
              minimum_angle=x;
          }
          else {
              minimum_angle=y;
          }
        }
        System.out.print(minimum_angle);
    }

3 个答案:

答案 0 :(得分:3)

您的两个代码段都不正确。

您正在滥用后增量运算符。

if(data[counter]<data[counter++])

永远不会是真的,就像

一样
if(data[counter]<data[counter])

永远不会成真。

后增量运算符返回递增变量的原始值。

不清楚为什么要在循环体中递增计数器。您应该只在for语句中增加它。为了找到最低要求,您必须将data[counter]minimum_angle进行比较:

double minimum_angle = Double.MAX_VALUE;
for(int counter = 0; counter < data.length; counter++) {
    if(data[counter] < minimum_angle) {
        minimum_angle = data[counter];
    }
}

答案 1 :(得分:0)

public class text {

public static void main(String[] args) {
    //Data Array
    double data[] = {19.2,22.3,32.51,39,41.16,49.46,55.91,58.18};

    //Finding minimum angle
    double minimum_angle = data[0];
    for(int counter = 1;counter < data.length;counter ++){

      if(minimum_angle < data[counter]){
          minimum_angle = data[counter];
      }
    }
    System.out.print(minimum_angle);




}

}

使用data [0]初始化minimum_angle,并将minimum_angle与索引1中的数据数组进行比较。如果minimum_angle小于data [index] value,则将minimum_angle分配给data [index]以从数组中获取最小double值。

答案 2 :(得分:0)

看起来你是编程新手。 无论如何,请尝试下面的代码。

    double data[]={19.2,22.3,32.51,39,41.16,49.46,55.91,58.18};

    double minimum_angle=data[0];
    for(int counter=0;counter<data.length;counter++)
        if(minimum_angle < data[counter])
            minimum_angle = data[counter];

    System.out.print(minimum_angle);