2016-10-19 3 views
0

Не могли бы вы объяснить мне, как изменить это для цикла на рекурсивный? Я знаю, что такое рекурсивное, но я не смог получить правильное количество символов для печати с кодом, поскольку он только печатает первая строка звезд.Change For Loop to Recursive Method

Любое руководство будет оценено,

Вот мой текущий код:

static void printLine(int n) { 
    for (int i=0; i<n; ++i) { 
     System.out.print("*"); 
    } 
    System.out.println(); 
} 
+0

Домашнее задание вопрос! :) – user2004685

+0

Какую часть этого (по общему признанию, нечетного) требования вы боретесь? Вы понимаете, какие рекурсивные методы? Если да, то что вы пытались сделать до сих пор? – UnholySheep

+0

http://meta.programmers.stackexchange.com/questions/6166/open-letter-to-students-with-homework-problems – EJoshuaS

ответ

2

погуглить «как преобразовать цикл для рекурсии» есть аналогичный ответ here, и статья с примером here ,

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

for (int i = 1; i <= n; i++) 
{ 
    // .... 
} 

эквивалентно:

private static void PerformAction(int n) 
    { 
     if (n > 0) 
     { 
      // Do something 
      PerformAction(n - 1); 
     } 
    } 
1

Это то, что вы должны быть в состоянии Google довольно легко, убедитесь, что вы пытаетесь найти ответ самостоятельно, прежде чем спрашивать сообщества. Я не возражаю ответить на такие вопросы, но я обнаружил, что вы действительно ничего не узнаете, если сначала спросите и посмотрите позже.

private static void printStars(int n) 
{ 

if (n>0){ 
system.out.println("*"); 
printStars(n-1); 
     } 
}