Как использовать бинарный оператор "%" с пользовательским вводом "readLine ()"? - PullRequest
0 голосов
/ 16 января 2019

Меня попросили написать код, используя операторы If / Else.Код должен попросить пользователя ввести число, а затем вывести «Это число четное», если число четное, и вывести «Это число нечетное», если число нечетное.Для этого я использую бинарный оператор "%", чтобы выяснить, является ли вмененное число четным или нечетным.Проблема в том, что я получаю эту ошибку, которая говорит: «ошибка: двоичный оператор«% »не может быть применен к операндам типа« String? »и Int, если% 2 == 0 ".Я не знаю, как сделать так, чтобы пользовательский ввод стал значением Int вместо строки по умолчанию, чтобы бинарный оператор работал.

Мне предложили попробовать приведение типов, но ничего, что я делаю, похоже не работает.

print("This code will inform you whether the number you input is odd or even.")

print("Please enter a number of your choice.")

var a = readLine()

if  a %  2 ==  0 {
   print("This number is even.")
}
else  {
   print("This number is odd.")
}

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

1 Ответ

0 голосов
/ 16 января 2019

readLine () возвращает необязательную строку. Чтобы развернуть опционально, в swift есть пара опций, я думаю, там есть три опции. Один из них - принудительное развертывание, второй - необязательная цепочка, а третий - оператор guard . Здесь, в опциях ниже, я использовал необязательную цепочку, чтобы развернуть необязательную строку, возвращаемую redLine () . Попробуйте это:

if let typed = readLine() {
    if let num = Int(typed) {
        if  num %  2 ==  0 {
            print("This number is even.")
        }
        else  {
            print("This number is odd.")
         }
       }
     } else {
    print("Please enter a valid number")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...