#swift
#swift
Вопрос:
Я в основном новичок в swift. Итак, это может быть нелепый вопрос. Я занимаюсь этим слишком долго. Мои лекции моего профессора охватывают это, но то, как это было объяснено, мне было немного сложно понять.
Я пытаюсь заставить swift печатать разные фразы в зависимости от переменной temp. Если у меня есть только первый набор кода и изменить переменную на -x, она отлично работает без остальной части кода. Я не совсем уверен, где это становится совершенно неправильным. Я получаю кучу ошибок, я это знаю. Заранее благодарим вас за любую помощь.
if temp < 0 {
print("Too Cold for Outdoors")
}
if temp = 0 ... 20 {
print("Very Cold Weather")
}
if temp = 21 ... 40 {
print("Cold")
}
if temp = 41 ... 60 {
print("Normal")
}
if temp = 61 ... 80 {
print("Nice")
}
if temp = 81 ... 90 {
Print("Warm")
}
if temp >= 91 {
print("Hot")
}
```
Комментарии:
1. В swift
=
означает присвоение, и вы используете==
для проверки на равенство, но вы не можете проверить такой диапазон, либо разделить его на два,temp >= 21 amp;amp; temp <= 40
либо использоватьcontains
, например(21...40).contains(temp)
2.
if temp = 61 ... 80
анализирует как:if (temp = (61 ... 80))
, то есть пытается присвоитьRange<Int>
(нижний 61, верхний 80) вызываемой переменнойtemp
. Результат этого выражения присваивания пытается обрабатываться как логическое значение дляif
использования. За исключением оператора присваивания Swift,=
, является оператором, а не выражением. Это не «приводит» к какому-либо значению.3. Теперь это имеет гораздо больше смысла для меня!
Ответ №1:
Помимо того факта, что вы используете неправильный оператор для сравнения =
вместо ==
, и если вы хотите проверить, содержит ли диапазон значение, вам нужен оператор сопоставления с образцом ~=
. т.е.: if 0...<21 ~= temp {
но то, что вы действительно ищете, это переключатель:
let temp = 76
switch temp {
case .min ..< 0: print("Too Cold for Outdoors")
case 0 ..< 21: print("Very Cold Weather")
case 21 ..< 41: print("Cold")
case 41 ..< 61: print("Normal")
case 61 ..< 81: print("Nice")
case 81 ..< 91: print("Warm")
default: print("Hot")
}
Это выведет:
Неплохо
Комментарии:
1. Ну ладно! Это имеет больше смысла, рассматривая это таким образом. Я подумал, что способ его настройки будет слишком сложным для того, насколько простым он должен быть. Спасибо.