Как не печатать последний знак добавления в этом расчете - PullRequest
0 голосов
/ 11 октября 2018

Хорошо, возможно, это глупый вопрос с простым решением, но сейчас я не могу найти решение и не нашел ни одного ответа.

Это соответствующий код длямоя проблема:

int sum = 0;
    for ( int i = minLim; i <= maxLim; i++) {
        sum += i;
        System.out.print(i + " + ");
    }
    System.out.print("= "+sum+" ");

Это печатает: 2 + 3 + 4 + 5 + 6 + = 20

Значение minLim и maxLim читается из пользовательского ввода.

Но я хочу сделать так, чтобы он не печатал последний «+».Как это сделать?И бонусный вопрос: для каждых 10 напечатанных номеров я хочу новую строку, чтобы 11-е число печаталось на другой строке и так далее.Спасибо!

Ответы [ 3 ]

0 голосов
/ 11 октября 2018
int sum = 0;
for (int i = minLim ; i <= maxLim ; i++) {
    sum += i;
    if (i == maxLim)
        System.out.print(i);
    else
        System.out.print(i + " + ");
    }
    System.out.print("= "+sum+" ");
}
0 голосов
/ 11 октября 2018

Вы видели несколько решений, в которых не печатает a + после добавления last .

Но вы также можете легко принять противоположное мнение: печать a + перед каждое добавление за исключением первого :

int sum = 0;
for ( int i = minLim; i <= maxLim; i++) {
    sum += i;
    if (i > minLim)
        System.out.print(" + ");
    System.out.print(i);
}
System.out.print("= "+sum+" ");

Или, если вам не нравится идея проверки начального или конечного условия цикла внутри цикла , вы можете использовать переменную boolean в качестве единицыфлаг времени вместо тестирования i:

int sum = 0;
boolean firstTime = true;
for ( int i = minLim; i <= maxLim; i++) {
    sum += i;
    if (!firstTime)
        System.out.print(" + ");
    firstTime = false;
    System.out.print(i);
}
System.out.print("= "+sum+" ");

Все хорошие варианты, просто выбирайте ...

0 голосов
/ 11 октября 2018

Вы можете добавить if, чтобы проверить, когда вы набрали последний номер.Как то так:

for ( int i = minLim; i <= maxLim; i++) {
        sum += i;
        if (i + 1 <= maxLim)
            System.out.print(i + " + ");
        else
            System.out.print(i + " ");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...