swift阅读整数题
swift reading integer quesiton
我是 swift 编程新手。我在 windows 或在线编译器中编译我的程序。我坚持读取 swift 中的一个整数。我成功地从控制台读取整数。但是我不能在 while 循环中使用这个整型变量。如何在从控制台读取的 while 循环中使用整数变量?
我的尝试是:
import Foundation
print("Enter a number:")
let inputNumber = Int(readLine()!)
if let inputNumber = inputNumber {
print(inputNumber)
}
if inputNumber == 3 {
print("number = 3") }
else { print("number != 3") }
var sayi = inputNumber
if sayi == 3 {
print("sayi = 3") }
else { print("sayi != 3") }
while sayi > 0 {
print("*", terminator:"")
sayi = sayi - 1 }
编译错误是:
main.swift:21:12: 错误:二元运算符“>”不能应用于 'Int?' 和 'Int'
类型的操作数
while sayi > 0 {
~~~~ ^ ~
main.swift:21:12:注意:“>”的重载存在于这些部分匹配的参数列表中:(Self, Self), (Self, Other)
while sayi > 0 {
^
main.swift:23:16: 错误:可选类型 'Int?' 的值未展开;你是不是想用'!'要么 '?'?
sayi = sayi - 1
问题是 inputNumber 和 sayi 是可选值,编译器认为 Int
和 Int?
是不同的类型,无法比较
我会使用以下逻辑来读取和转换用户输入
let inputNumber: Int
//The below if clause will be successful only if both deadline() and Int() returns non-nil values
if let input = readLine(), let value = Int(input) {
inputNumber = value
} else {
print("Bad input")
inputNumber = 0
}
然后剩下的代码就可以工作了(这里我做了一些简化)
var sayi = inputNumber
sayi == 3 ? print("sayi = 3") : print("sayi != 3")
while sayi > 0 {
print("*", terminator:"")
sayi -= 1
}
我是 swift 编程新手。我在 windows 或在线编译器中编译我的程序。我坚持读取 swift 中的一个整数。我成功地从控制台读取整数。但是我不能在 while 循环中使用这个整型变量。如何在从控制台读取的 while 循环中使用整数变量? 我的尝试是:
import Foundation
print("Enter a number:")
let inputNumber = Int(readLine()!)
if let inputNumber = inputNumber {
print(inputNumber)
}
if inputNumber == 3 {
print("number = 3") }
else { print("number != 3") }
var sayi = inputNumber
if sayi == 3 {
print("sayi = 3") }
else { print("sayi != 3") }
while sayi > 0 {
print("*", terminator:"")
sayi = sayi - 1 }
编译错误是:
main.swift:21:12: 错误:二元运算符“>”不能应用于 'Int?' 和 'Int'
类型的操作数while sayi > 0 { ~~~~ ^ ~
main.swift:21:12:注意:“>”的重载存在于这些部分匹配的参数列表中:(Self, Self), (Self, Other)
while sayi > 0 { ^
main.swift:23:16: 错误:可选类型 'Int?' 的值未展开;你是不是想用'!'要么 '?'? sayi = sayi - 1
问题是 inputNumber 和 sayi 是可选值,编译器认为 Int
和 Int?
是不同的类型,无法比较
我会使用以下逻辑来读取和转换用户输入
let inputNumber: Int
//The below if clause will be successful only if both deadline() and Int() returns non-nil values
if let input = readLine(), let value = Int(input) {
inputNumber = value
} else {
print("Bad input")
inputNumber = 0
}
然后剩下的代码就可以工作了(这里我做了一些简化)
var sayi = inputNumber
sayi == 3 ? print("sayi = 3") : print("sayi != 3")
while sayi > 0 {
print("*", terminator:"")
sayi -= 1
}