0

我是一个初学者,我正在尝试做一些事情,如果 arg[0] 为 0,则打印附加参数的数量,如果 arg[0] 为 1,则将附加参数的总数相加。例如

java Summo 0 3 5 6

2

和:

java Summo 1 2 3

5.0

我似乎让它有点工作,它可以得到答案,但由于某种原因,当我做 0 案例时,它会打印答案,然后是新的 0.0 行。

public class Summo
{
  public static void main(String[] args)
  {
  int K = Integer.parseInt(args [0]);
  float [] a = new float [args.length-1];
  for (int i = 1; i < args.length; i++) 
      a[i-1] = Float.parseFloat(args [i]);
  float sum = 0.0f;
  if (K == 0)
      System.out.println (a.length);


  if (K == 1)
      for (float i: a)
           sum += i;
  System.out.println(sum);
  }
}
4

2 回答 2

2

你有块问题。

if (K == 1)
    for (float i: a)
      sum += i;
    System.out.println(sum);

应该

if (K == 1)
{
    for (float i: a)
      sum += i;
    System.out.println(sum);
}

如果省略花括号{},则仅在块内执行第一条指令if,即for仅在 if 时执行循环k == 1,但println始终执行方法。

于 2013-11-11T16:10:57.157 回答
0

您需要更改以下代码

if (K == 1)
  for (float i: a)
       sum += i;
 System.out.println(sum);

注意:在您的代码中 'System.out.println(sum);' 将永远被执行。如果 K=0,因为 sum 是 0.0f。这就是为什么在控制台中打印额外的 0.0 的原因。

    if (K == 1) {
        for (float i : a)
            sum += i;
        System.out.println(sum);
    }
于 2013-11-11T16:13:18.673 回答