作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个非常详细的 while 循环,并且一直非常抗拒不得不再次寻求帮助,但我不知所措!对于这个 while 循环代码,我真的很抱歉,发生了很多事情,但我不想遗漏任何东西,以防观众需要看到这一切。
func retRhoCurrent() -> Double {
while abs(pTarget - pCalc) > 1 {
//
// SET rhoCurrent
//
if (pTarget > pCalc) {
rhoLow = rhoCurrent
if(rhoCurrent >= rhoHigh) {
rhoCurrent += RHO_C
rhoHigh = rhoCurrent
} else {
rhoCurrent += ((rhoHigh - rhoCurrent)/2)
}
} else {
rhoHigh = rhoCurrent
rhoCurrent += ((rhoLow - rhoCurrent)/2)
}
//
// SET rhoR
//
rhoR = rhoCurrent / RHO_C
//
// SET DIFFERENTIAL
//
diffAggregate = 0
for var kIndex = 0; kIndex < NK_VALUES.count; ++kIndex {
diffSegment = NK_VALUES[kIndex]
diffSegment *= pow(rhoR, IK_VALUES[kIndex])
diffSegment *= pow(tempR, JK_VALUES[kIndex])
iFactor = 0
if LK_VALUES[kIndex] > 0 {
diffSegment *= exp(-1 * pow(rhoR, LK_VALUES[kIndex]))
iFactor = LK_VALUES[kIndex] * pow(rhoR, LK_VALUES[kIndex])
}
if PK_VALUES[kIndex] > 0 {
diffSegment *= exp(-1 * PK_VALUES[kIndex] * pow(rhoR, 2) - BK_VALUES[kIndex] * pow(tempR - UK_VALUES[kIndex], 2))
iFactor = 2 * rhoR * PK_VALUES[kIndex] * (rhoR - 1)
}
diffAggregate += (diffSegment * (IK_VALUES[kIndex] - iFactor))
}
//
// SET pCalc
//
zDiff + 1 + diffAggregate
pCalc = zDiff * R_CONST * 1000 * tempK * rhoCurrent
}
return rhoCurrent
}
我想我还有一个问题是我想从这个 while 循环中得到的主要值是 rhoCurrent(因为我将使用这个最后的 # 来计算其他东西)。执行“return rhoCurrent”会起作用,对吗?
提前致谢!
最佳答案
我想你打算用这一行来赋值,但它没有:
zDiff + 1 + diffAggregate
因为它没有分配值,所以 diffAggregate
没有用在 while
循环体中。 rhoR
也因此没有被使用。您的功能可以这样简化:
func retRhoCurrent() -> Double {
while abs(pTarget - pCalc) > 1 {
//
// SET rhoCurrent
//
if (pTarget > pCalc) {
rhoLow = rhoCurrent
if(rhoCurrent >= rhoHigh) {
rhoCurrent += RHO_C
rhoHigh = rhoCurrent
} else {
rhoCurrent += ((rhoHigh - rhoCurrent)/2)
}
} else {
rhoHigh = rhoCurrent
rhoCurrent += ((rhoLow - rhoCurrent)/2)
}
//
// SET pCalc
//
pCalc = zDiff * R_CONST * 1000 * tempK * rhoCurrent
}
return rhoCurrent
}
我非常怀疑您在循环中使用但未在函数内初始化的变量。 rhoLow
、rhoHigh
、rhoCurrent
、tempK
、zDiff
的初始值是多少, pTarget
, 和 pCalc
?
这个方法很乱,依赖很多魔法。它正在修改不属于它的值,这意味着您可能会在应用程序的其他区域遇到意想不到的事情。它绝对不是线程安全的(尽管这可能不是您关心的问题)。
关于ios - 我在 Swift 中的 while 循环不会终止,我错过了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28703348/
我无法在附加行中显示“真”、“假”、"is"和“否”按钮。 我在这里有一个应用程序:Application 请按照以下步骤使用应用程序: 1。当你打开应用程序时,你会看到一个绿色的加号按钮,点击 在此
我是一名优秀的程序员,十分优秀!