如何将此循环更改为while循环?将for循环更改为while循环 - Swift
let op = ["+", "-", "*", "/"]
for x in op {
if display.text!.rangeOfString(x) != nil {
y = x
break
}
}
如何将此循环更改为while循环?将for循环更改为while循环 - Swift
let op = ["+", "-", "*", "/"]
for x in op {
if display.text!.rangeOfString(x) != nil {
y = x
break
}
}
您可以使用像这样创建一个while循环,可以让你做数组中的每个项目的动作,只要它是4个元素。
let op = ["+", "-", "*", "/"]
var count: Int = 0
while (count < 4)
{
print(op[count])
//perform any action with op[count] in here.
count += 1
}
':Int'是不必要的 - 这是'count'的假定类型。你可能希望'while count
谢谢,这工作也很好! –
如果你真的必须使用while
循环,这将是最接近纠正:
let op = ["+", "-", "*", "/"]
var opSequence = op.generate()
while let nextOp = opSequence.next() {
print(nextOp)
// do something with nextOp
}
但是理解的是,这不是真的那么多不同的这是非常重要的for
- in
循环,作为for
- in
循环实际上只是上述代码的语法糖。
for
- in
循环更清洁,更接近某人期望在此处看到的内容。
我们也可以写一个while
循环,使我们无论是指数的价值,因为这样:
let op = ["+", "-", "*", "/"]
var opSequence = op.enumerate().generate()
while let (index, nextOp) = opSequence.next() {
print("At index \(index): \(nextOp)")
}
你可以将此同一套代码,任何CollectionType
。但是,再次,这与for
- in
循环覆盖范围内发生的情况没有什么不同。 A for
- in
loop依赖此generate()
方法,该方法返回IndexingGenerator
,该方法具有方法next()
。 next()
方法返回一个可选类型,不管集合是什么,以及for
- in
循环,就像这样,while
循环,每次迭代调用next()
,并且只要它得到非nil
值,它就会进入循环体那个价值。
的主要区别是一个事实,即for
- in
循环不会离开你悬空变量(在这个例子中,opSequence
变量)和事实for
- in
环为单纯了很多更具可读性。
为了更好地理解,只需学习控制流表单swift即可:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ControlFlow.html –
您不应该这样做。如果你需要为数组中的每一项操作,你应该使用'for'-'in'循环。没有其他的东西 – nhgrif