Не могу получить правильную сумму предыдущих чисел - PullRequest
0 голосов
/ 21 марта 2019

Итак, я работал над завершением раздела моего кода, который хотел, чтобы он распечатывал сумму чисел, предшествовавших тому, что вставил пользователь, но я не могу получить правильную сумму.Например, если пользователь введет «4», то сумма должна быть 10 как 4 + 3 + 2 + 1 = 10, но когда я введу 4, я получу 5. Может кто-нибудь объяснить мне, что происходит, яЯ уверен, что это в моем цикле, потому что это единственная часть, доставляющая мне неприятности, но я не уверен.Также есть первый бит кода, так как мы предполагали ограничить пользователя вводом от 3 до 10 и вывести соответствующее количество символов после слов.К счастью, я получил эти части очень хорошо, но, возможно, ошибка все еще там, насколько я знаю.Еще раз спасибо за всех, кто хочет помочь

 int count2 = 0;
    do {
        System.out.print("Enter a number to use for Part B loops: ");
        count2 = keybd.nextInt();
        if (count2 > 10 || count2 < 3) {
            System.out.print("Error: number must be between 3 and 10, inclusive.\n");
        }
    } while (count2 > 10 || count2 < 3);

    int i = 1;
    System.out.print("Spring");
    while (i <= count2) {
          System.out.print("/\\");
          i++;
    } 
    System.out.println("Break");

    System.out.print("Sum of values 1 through " + count2 + " = ");

    int sum = 0;

    for (i = 1; i <= count2; i++);
    {
        sum += i;
    } 
    System.out.print(sum);

1 Ответ

0 голосов
/ 22 марта 2019

На самом деле проблема - точка с запятой (;) после вашего цикла for. То, что делает ваш код в том виде, в каком оно есть сейчас, циклически изменяет счетчик i от 1 до count2, затем вы выходите из цикла for с помощью (i = count2 + 1), после чего блок кода {sum + = i} выполняется и делает сумма = count2 + 1

Так что просто удалите точку с запятой, и все готово

...