Остановите цикл после определенного количества итераций, а не при достижении максимального значения - PullRequest
0 голосов
/ 06 мая 2019

JAVA:

Я хочу цикл for, который не останавливается, когда я являюсь определенным числом, а скорее после x итераций.Есть ли способ сделать это?

public static int seven_sum(int num) {
    int sum = 0;
    for (int i = 7; i <= WHAT GOES HERE; i = i * 10 + i) { 
        sum = sum + i;
    }
    return sum;
  }

Ответы [ 3 ]

0 голосов
/ 06 мая 2019

Единственный случай, о котором я могу подумать: если x (количество итераций) больше i (ваш индекс, который может зависеть от некоторых входных значений, таких как длина массива и т. Д.) Если это так, вы можете объединить бесконечный цикл с оператором break:

    int iterations = 0;
    for(int i = 0; true ; i++){
        System.out.println("iterations count = " + ++iterations);
        if(iterations == 10) break;
    }

или даже без объявления индекса:

    int iterations = 0;
    for( ; ; ){
        System.out.println("iterations count = " + ++iterations);
        if(iterations == 10) break;
    }

или если вам нужны две или более независимых переменных

    int x = 10; //number of iterations wanted
    for(int i = 7, j = 0; j<= x; i = i * 10 + i , j++){
        // do something
    }
0 голосов
/ 06 мая 2019

Вы можете объявить несколько переменных одного типа в цикле for:

public static int seven_sum(int num) {
    int sum = 0;
    for (int i = 7, iterations = 0; iterations < (number of iterations); i = i * 10 + i, iterations++) { 
        sum = sum + i;
    }
    return sum;
  }
0 голосов
/ 06 мая 2019

Предположим, у вас есть определенное значение, суммирующееся в вашем цикле, и вы хотите остановить цикл, если значение превышает определенную границу. Вы можете просто добавить оператор if, который проверяет значение:

public static void main(String args[]) {
    // some value to hold a sum
    int valueSum = 0;

    for (int i = 0; i < 1000; i++) {
        // in every iteration step, add the current value of i to valueSum
        valueSum += i;

        // print the current values of i and valueSum
        System.out.println("Iteration no " + i + ", value sum = " + valueSum);

        // stop looping if valueSum becomes 500 or greater
        if (valueSum >= 500) {
            break;
        }
    }
}

Пожалуйста, проверьте вывод консоли, чтобы лучше понять циклы for и итерацию в целом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...