输出是打印两种情况[java]

时间:2013-11-11 16:08:30

标签: java sum

我是初学者,我正在尝试制作一些东西,如果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);
  }
}

2 个答案:

答案 0 :(得分: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循环仅在k == 1时执行,但{{1总是执行方法。

答案 1 :(得分: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);
    }