2016-07-13 3 views
-3

Я пытаюсь напечатать заданного набора чисел и их сумму следующим образомИспользование цикл для распечатки данных и их суммы

enter image description here

и вот что я получаю:

enter image description here

и вот мой код, пожалуйста, указать на мою ошибку с некоторыми пояснениями. Спасибо!

public static void main(String[] args) { 
     addNums(1,2,3,4,5,6); 
    } 
    public static void addNums (int... nums) { 
     String result = ""; 
     int sum=0; 
     for (int i = 0; i < nums.length; i++) { 
      sum += i; 
      result += i + " + "; 
      for (int j = 0; j<i; j++) { 
       String out = result.substring(0, result.length()-1) + " = " + sum; 
       System.out.println(out); 
      } 
      System.out.println(""); 
     } 

    } 

} 
+0

ли [этот код] (http://stackoverflow.com/a/38355422/4927984) решить проблему? – Mistalis

ответ

0

Я удалил свой второй цикл, и изменил result += i от result += nums[i]:

public static void main(String[] args) { 
     addNums(1,2,3,4,5,6); 
    } 

    public static void addNums (int... nums) { 
     String result = ""; 
     int sum = 0; 
     for (int i = 0; i < nums.length; i++) { 
      sum += nums[i]; 
      result += nums[i]; 
      if(i != nums.length) result += "+"; 
      String out = result.substring(0, result.length()-1) + " = " + sum; 
      System.out.println(out); 
     } 
    } 

Он печатает:

1 = 1

1 + 2 = 3

1 + 2 + 3 = 6

1 + 2 + 3 + 4 = 10

1 + 2 + 3 + 4 + 5 = 15

1 + 2 + 3 + 4 + 5 + 6 = 21

+0

Другим моментом может быть последний знак '+' каждой строки. – pzaenger

+0

Обновлено, это лучше? – Mistalis

+0

Это :) Возможно, эта строка 'String out = result.substring (0, result.length() - 1) +" = "+ sum;' также может быть улучшена. Я не вижу смысла использовать подстроку. – pzaenger

0

А также Вы используете команду i вместо nums[i].

sum += nums[i]; result += nums[i] + " + ";