【问题标题】:Random Number Generator (Command Line)随机数生成器(命令行)
【发布时间】:2016-11-17 13:34:35
【问题描述】:

当用户输入一个数字时,他们必须猜测随机数。这些是我在代码中出现两次的这行代码的错误。

“类型为“String”的值没有数字“stringByReplacingOccruencesOfString”

input = input.stringByReplacingOccurrencesOfString("\n", withSring:"",

这是完整的代码

import Foundation

var randomNumber = 1
var userGuess:Int? = 1
var continueGuessing = true
var keepPlaying = true
var input = ""

while (keepPlaying) {
randomNumber = Int(arc4random_uniform(101)) 
// gets a random number between 0-   1000

print("The random number to guess is:\(randomNumber)");
while (continueGuessing) {
    print ("Print a number between 0 and 100")
    input = NSString(data: FileHandle.standardInput.availableData,
    encoding:String.Encoding.utf8.rawValue) as! String // gets keyboard input
    input = input.stringByReplacingOccurrencesOfString("\n", withSring:"",
    options: NSString.CompareOptions.LiteralSearch, range: nil)
    userGuess = Int(input)
    if (userGuess == randomNumber){
        continueGuessing = false
        print("Correct Number!");
    }
    else if (userGuess! > randomNumber){
        print("Your guess is too high");
    }
    else{
        print("Your guess is too low");

    }
}
print ("Play Again? Y or N");
input = NSString(data: FileHandle.standardInput.availableData,
encoding:String.Encoding.utf8.rawValue)! as String
input = input.stringByReplacingOccurrencesOfString("\n", withString: "",
options: NSString.CompareOptions.LiteralSearch, range: nil)

if(input == "N" || input == "n"){
    keepPlaying = false
}
continueGuessing = true

}

【问题讨论】:

  • withSring 是错字吗? – 并不是说​​ Swift 3 中的方法名称发生了很大变化。(但是“转换为当前的 Swift 语法”应该会有所帮助)
  • 无论是哪个 Swift 版本,假设您使用的是 Xcode,您可以通过删除方法调用、输入 input.replacing 并查看自动完成功能来解决您的问题。
  • 或浏览documentation ...
  • 转换只是增加了更多错误

标签: swift command-line


【解决方案1】:

固定代码

import Foundation

var randomNumber = 1
var userGuess:Int? = 1
var continueGuessing = true
var keepPlaying = true
var input = ""

while (keepPlaying) {
randomNumber = Int(arc4random_uniform(101))
// gets a random number between 0-   1000

print("The random number to guess is:\(randomNumber)");
while (continueGuessing) {
    print ("Print a number between 0 and 100")
    if let input = readLine() {
        if let userGuess = Int(input) {
            if (userGuess == randomNumber){
                continueGuessing = false
                print("Correct Number!");
            }
            else if (userGuess > randomNumber) {
                print("Your guess is too high");
            }
            else{
                print("Your guess is too low");

            }

        } else {
            print("Bad input data");
        }
    }
}
print ("Play Again? Y or N");
input = readLine()!
if(input == "N" || input == "n"){
    keepPlaying = false
}
continueGuessing = true

}

结果

【讨论】:

  • 您找到问题的解决方案了吗?
猜你喜欢
  • 1970-01-01
  • 2023-01-03
  • 1970-01-01
  • 2015-03-14
  • 1970-01-01
  • 1970-01-01
  • 2017-04-05
  • 2011-01-24
  • 2011-01-16
相关资源
最近更新 更多