如何在 if else 语句之后继续你的代码而不中断?
How to continue your code after an if else statement without breaking?
我正在对数值数学方法的误差进行近似计算,但是在我编写了 if else 语句之后,代码似乎在该语句中无休止地继续,除非我破坏它。但我想使用下面的代码继续模拟以完成近似的第二部分。有什么建议吗?
while True:
m1 = h*func1(t,v, Hs)
k1 = h*func2(t,v, Hs)
m2 = h*func1(t+(h/2),v+(m1/2), Hs + (k1/2))
k2= h*func2(t+(h/2),v+(m1/2), Hs +(k1/2))
m3 = h*func1(t+(h/2),v+(m2/2),Hs+(k2/2))
k3= h*func2(t+(h/2),v+(m2/2),Hs+(k2/2))
m4 = h*func1(t+h,v+m3,Hs+k3)
k4= h*func2(t+h,v+m3,Hs+k3)
v= v +(1/6)*(m1+(2*m2)+(2*m3)+m4)
Hs=Hs + (1/6)*(k1+(2*k2)+(2*k3)+k4)
t= t+h
if Hs > 11:
f = f +0.0001
Hs=Hr*d/(L*f+d)
v = math.sqrt(2*g*Hr*d/(L*f+d))
t = 0
else:
break
while (t2 <= 10):
m12 = z*func1(t2,v2,Hs2)
k12 = z*func2(t2,v2,Hs2)
m22 = z*func1(t2+(z/2),v2+(m12/2), Hs2 + (k12/2))
k22= z*func2(t2+(z/2),v2+(m12/2), Hs2 +(k12/2))
m32 = z*func1(t2+(z/2),v2+(m22/2),Hs2+(k22/2))
k32= z*func2(t2+(z/2),v2+(m22/2),Hs2+(k22/2))
m42 = z*func1(t2+z,v2+m32,Hs2+k32)
k42= z*func2(t2+z,v2+m32,Hs2+k32)
v2= v2 +(1/6)*(m12+(2*m22)+(2*m32)+m42)
Hs2=Hs2 + (1/6)*(k12+(2*k22)+(2*k32)+k42)
t2 =t2+z
if t2 == 10:break
对于某个f,Hs达到<11后,程序继续,直到无穷大。但在 t 达到 75 的值后,我希望代码继续使用下面编写的 while 循环。
python中有continue
条语句。
例如:
>>> for i in range(10):
>>> if i == 3:
>>> continue
>>> print(i)
0
1
2
4
5
6
7
8
9
如您所见,缺少 3
,因为 continue
语句在 i
为 3
时继续。
它并没有停止循环,只是继续 4
。
我认为这会有所帮助。
我正在对数值数学方法的误差进行近似计算,但是在我编写了 if else 语句之后,代码似乎在该语句中无休止地继续,除非我破坏它。但我想使用下面的代码继续模拟以完成近似的第二部分。有什么建议吗?
while True:
m1 = h*func1(t,v, Hs)
k1 = h*func2(t,v, Hs)
m2 = h*func1(t+(h/2),v+(m1/2), Hs + (k1/2))
k2= h*func2(t+(h/2),v+(m1/2), Hs +(k1/2))
m3 = h*func1(t+(h/2),v+(m2/2),Hs+(k2/2))
k3= h*func2(t+(h/2),v+(m2/2),Hs+(k2/2))
m4 = h*func1(t+h,v+m3,Hs+k3)
k4= h*func2(t+h,v+m3,Hs+k3)
v= v +(1/6)*(m1+(2*m2)+(2*m3)+m4)
Hs=Hs + (1/6)*(k1+(2*k2)+(2*k3)+k4)
t= t+h
if Hs > 11:
f = f +0.0001
Hs=Hr*d/(L*f+d)
v = math.sqrt(2*g*Hr*d/(L*f+d))
t = 0
else:
break
while (t2 <= 10):
m12 = z*func1(t2,v2,Hs2)
k12 = z*func2(t2,v2,Hs2)
m22 = z*func1(t2+(z/2),v2+(m12/2), Hs2 + (k12/2))
k22= z*func2(t2+(z/2),v2+(m12/2), Hs2 +(k12/2))
m32 = z*func1(t2+(z/2),v2+(m22/2),Hs2+(k22/2))
k32= z*func2(t2+(z/2),v2+(m22/2),Hs2+(k22/2))
m42 = z*func1(t2+z,v2+m32,Hs2+k32)
k42= z*func2(t2+z,v2+m32,Hs2+k32)
v2= v2 +(1/6)*(m12+(2*m22)+(2*m32)+m42)
Hs2=Hs2 + (1/6)*(k12+(2*k22)+(2*k32)+k42)
t2 =t2+z
if t2 == 10:break
对于某个f,Hs达到<11后,程序继续,直到无穷大。但在 t 达到 75 的值后,我希望代码继续使用下面编写的 while 循环。
python中有continue
条语句。
例如:
>>> for i in range(10):
>>> if i == 3:
>>> continue
>>> print(i)
0
1
2
4
5
6
7
8
9
如您所见,缺少 3
,因为 continue
语句在 i
为 3
时继续。
它并没有停止循环,只是继续 4
。
我认为这会有所帮助。