如何让计算机在 Swift 中生成预定义的一组数字?
Posted
技术标签:
【中文标题】如何让计算机在 Swift 中生成预定义的一组数字?【英文标题】:How to make computer generate predefined set of numbers in Swift? 【发布时间】:2015-08-05 20:10:20 【问题描述】:我想让计算机一个接一个地生成一组预定义的数字。在 Swift 中怎么可能?可以使用数组吗?
例如:我想以相同的顺序一个接一个地生成[1,2,3,4]
。通过生成,我的意思是当您输入arcrandom_uniform()
时显示随机数的方式。
例子:
var randomNumber = [1,2,3,4,5]
var guessInt = guess.text.toInt()
然后当我输入 ..
if Int(randomNumber) == guessInt
//conditions
错误显示为:Cannot assgn to the result of ths expresson
有时我会收到Int' is not convertible to '[Int]' swift
的错误
代码不起作用!帮忙?
这是@David Skrundz 的代码:
` @IBAction funcguessButton(sender: AnyObject) var randomNumber = [1,2,3,4,7,8,9,5] varguessInt =guess.text.toInt()
func generator() -> () -> Int
var currentIndex = 0
let array = Array(1...5)
func generate() -> Int
let value = array[currentIndex++]
if currentIndex >= array.count
currentIndex = 0
return value
return generate
let gen = generator()
gen() // Returns 1
gen() // Returns 2
gen() // Returns 3
gen() // Returns 4
gen() // Returns 1
let answer = gen()
if answer == guessInt
resultLabel.text = "Bingoo..! "
else
resultLabel.text = "Oh such a bad guesser! It was a \(answer)"
println(answer)
` 任何想法如何解决这个代码下面提到的问题! ?请 !
【问题讨论】:
什么是“生成”? 欢迎来到 SO。你的问题需要明确和具体 这个问题太模糊了。你是什么意思“预定义的数字集”?你想要一串可重复的随机数吗? 计算机如何生成随机数?以同样的方式,我希望计算机第一次生成例如“1”,第二次生成“3”。如何快速做到这一点? 无意冒犯,但您在此处询问基本内容之外的内容。至少这是我理解这个问题的方式。你真的需要一本好的编程书。 没有兄弟!我可能承认我不是比你更好的程序员。但是你回答了这个问题。你是冠军!冠军! 【参考方案1】:您可能需要范围运算符:
for index in 1...5
println("\(index)")
【讨论】:
谢谢!好主意!让我试试看,但我现在需要在“if”命令中应用它! @ShahamKampala 对if
的帮助在文档的这一章中关于基础知识:developer.apple.com/library/prerelease/ios/documentation/Swift/…
一个小疑问@EricD。那么为什么这段代码不起作用呢?任何的想法 ? var randomNumber = [1,2,3,4,5] var guessInt = guess.text.toInt()
if Int(randomNumber) == guessInt //conditions
【参考方案2】:
如果要生成重复序列中的下一个元素,可以使用
func generator() -> () -> Int
var currentIndex = 0
let array = Array(1...4)
func generate() -> Int
let value = array[currentIndex++]
if currentIndex >= array.count
currentIndex = 0
return value
return generate
并使用它:
let gen = generator()
gen() // Returns 1
gen() // Returns 2
gen() // Returns 3
gen() // Returns 4
gen() // Returns 1
【讨论】:
代码完美运行!但是 resultLabel 显示:“哦,真是个糟糕的猜测者!它是 [1, 2, 3, 4, 5]”但我想要的是:看到:而不是计算机说:“哦,如此糟糕的猜测者!它是 [1, 2, 3, 4, 5]"... 它应该说...**首先如果我输入 2 然后“哦,真是个糟糕的猜测者!这是一个 1..然后如果我输入 2 。 .计算机应该说:“Bingoo ..! " Bcoz...数组中的 nxt 数是 2 ..!这就是我们想要的!** 使用var guessInt = guess.text.toInt()
和let answer = gen()
然后你可以使用if guessInt == answer ...
让我试试..!我会尽快通知你!
代码完美运行!感谢那 !但是现在,问题是:它从数组中选择一个数字,那就是 2..!当我点击按钮并在文本字段中输入另一个数字时,计算机仍然从数组中生成的数字是 2。它始终是 2。就像,当我在文本字段中输入下一个数字时,生成的数字数组中的计算机应该更改为数组中的下一个数字,对吗?先生,我该怎么办?
我已经更新了问题详情部分的代码:)以上是关于如何让计算机在 Swift 中生成预定义的一组数字?的主要内容,如果未能解决你的问题,请参考以下文章