Swift, задание типа переменной
import Foundation
let carSpeed = readLine()
let townSpeed = 50
let fineFor1to10 = 15
let fineFor11to15 = 25
let fineFor16to20 = 35
let fineFor21to25 = 80
let fineFor26to30 = 100
let fineFor31to40 = 160
let fineFor41to50 = 200
let fineFor51to60 = 280
let fineFor61to70 = 480
let fineFor71andMore = 680
let overSpeed = carSpeed - townSpeed
if overSpeed < 1 {
print("Скорость не превышена или превышена не значительно");
}
else if overSpeed >= 1 && overSpeed < 10 {
print("Штраф: " + String(fineFor1to10))
}
else if overSpeed >= 11 && overSpeed < 15 {
print("Штраф: " + String(fineFor11to15))
}
else if overSpeed >= 16 && overSpeed < 20 {
print("Штраф: " + String(fineFor16to20))
}
else if overSpeed >= 21 && overSpeed < 25 {
print("Штраф: " + String(fineFor21to25))
}
else if overSpeed >= 26 && overSpeed < 30 {
print("Штраф: " + String(fineFor26to30))
}
else if overSpeed >= 31 && overSpeed < 40 {
print("Штраф: " + String(fineFor31to40))
}
else if overSpeed >= 41 && overSpeed < 50 {
print("Штраф: " + String(fineFor41to50))
}
else if overSpeed >= 51 && overSpeed < 60 {
print("Штраф: " + String(fineFor51to60))
}
else if overSpeed >= 61 && overSpeed < 70 {
print("Штраф: " + String(fineFor61to70))
}
else {
print("Штраф: " + String(fineFor71andMore))
}
Выдаёт ошибку:
main.swift:3:1: error: use of unresolved identifier 'carSpeed'
carSpeed = readLine()
^~~~~~~~
main.swift:18:17: error: use of unresolved identifier 'carSpeed'
let overSpeed = carSpeed - townSpeed
^~~~~~~~
exit status 1
Были попытки изменить тип переменной, но как-то всё равно не получилось.
Ответы (1 шт):
У меня появляется другая ошибка, так что я просто приведу здесь часть кода, чтобы у вас все работало. Если что-то непонятно, спросите.
Вместо вашего этого:
let carSpeed = readLine()
let townSpeed = 50
напишите это (тут я добавил проверку на ошибку, если введут буквы, а не цифры. Если вам это сложно или не нужно, напишу, как сделать просто ввод без этой проверки):
var carSpeed = 0
print("Введите скорость:")
if let speed = Int(readLine()!) {
carSpeed = speed
} else {
print("Вы ввели не число")
}
let townSpeed = 50
По идее тут надо ещё сделать, чтобы дальше не проверялся уровень превышения скорости, если уже есть ошибка ввода, но я не стал делать, так как не знаю, нужно ли вам или может сами захотите.
И ещё, вместо кучи "if else if", советую применить switch для перебора условий, только можно еще использовать не условия а полузамкнутый числовой диапазон (от такого-то до такого-то значения, включая одно из них). Вот пример, выдранный из другого кода:
switch myValue {
case 0:
print("no")
case 1..<5:
print("a few")
case 5..<12:
print("several")
case 12..<100:
print("dozens of")
case 100..<1000:
print("hundreds of")
default:
print("many")
}