Функции в цикле while


#1

Всем доброго времени суток.Есть вот такая вот задачка:

Нужно cоздать функцию power, которая будет возводить указанное число в целую степень. При этом, если второй параметр не был передан, считать, что мы возводим в квадрат.
Программа должна завершать работу, когда пользователь введёт пустую строку.

Пример ввода:
2
10 4
7 3
0.5 3

Пример вывода :
4
10000
147
0.125

У меня получилось только это все создать по отдельности. Не понимаю как обьединить функцию с циклом while.Помогите кто чем может)))

print("Enter")

func power(_ a : Int, _ b : Int) -> Int{
    if b == 0{
      return 1
}
      else if b == 1{
        return a
}
return a * power(a, b - 1 )
}
let y = power(10,4)
print(x)

var array = Array<Int>()

while let input = readLine(), input != ""{
let value = input.split(separator: " ")
for i in value {
    if let x = Int(i){
        array.append(x)
     
    }
}
}

#2

Вам надо уже делать задания самому, а то так и будете все задания спрашивать, иначе в чём смысл обучения??


#3

ну во первых не все задания а которые не понятны мне. я только начал изучать этот язык. во вторых я не прошу за меня сделать а прошу помочь разобраться в тех моментах которые мне не понятны. или это запрещено? для чего тогда существует этот форум?


#4

Пока это так не выглядит.
Все вопросы, которые вы тут задаете, это все объясняется в уроках и прочих туториалах.


#5

Конечно не запрещено, просто дружеский совет :slight_smile:

Ну и по вопросу не понятно, что у вас не получилось: вызовите функцию в цикле, какие проблемы?


#6

в этом и проблема что я не могу понять как ее вызвать))) и вот это меня вообще выбивает: При этом, если второй параметр не был передан, считать, что мы возводим в квадрат.


#7

я просто первый раз сталкиваюсь с функциями


#8

Тогда вам точно надо хотя бы прочитать учебник (перевод официальной документации) - тогда всё станет понятно. Раздел функции.

Начните с изучения основ: это учебник или базовый курс. Вы слишком рано взялись за задачи на алгоритмы и логику не зная языка!


#9

спасибо! будем разбираться)