我可以在一个页面中有两个相同条件但if语句不同的while循环吗?
例如:
$qtytoAdd = $rec_qty[$mat_key];
while($qtytoAdd > 0){
if(($remBalance - $qtytoAdd) >= 0) {
//do something
$qtytoAdd = 0
}else{
//do something
$qtytoAdd = $qtytoAdd - $remBalance
}
}
这样的事情:
while($qtytoAdd > 0){
if(($reqRemBal- $qtytoAdd) >= 0) {
//do something
$qtytoAdd = 0
}else{
//do something
$qtytoAdd = $qtytoAdd - $reqRemBal
}
}
$qtytoAdd
变量实际上是在循环开始之前定义的。我正在尝试做的是同时运行while循环,每个while $qtytoAdd
的while循环首先具有相同的值。
答案 0 :(得分:1)
当然但是如果你每次都有一个然后打破第一个,那么你需要强行休息或者$qtytoAdd != 0
如果是后者,则会导致第二个循环无法执行。
如果你解释你想要做什么,应该有一种更优雅的方式去做。
我认为你真正想要的就是:
$qtytoAdd = $rec_qty[$mat_key];
while($qtytoAdd > 0){
if(($remBalance - $qtytoAdd) >= 0) {
//do something
$qtytoAdd = 0
}else{
//do something
$qtytoAdd = $qtytoAdd - $remBalance
}
//second block
if(($reqRemBal- $qtytoAdd) >= 0) {
//do something
$qtytoAdd = 0
}else{
//do something
$qtytoAdd = $qtytoAdd - $reqRemBal
}
}
答案 1 :(得分:1)
首先,不要使用$qtytoAdd = 0
打破循环,只需使用break
完全摆脱循环,或continue
跳转到循环中的下一步。
然后你可以用这种方式合并循环: $ qtytoAdd = $ rec_qty [$ mat_key];
while($qtytoAdd > 0){
if (($remBalance - $qtytoAdd) >= 0 || ($reqRemBal- $qtytoAdd) >= 0) {
// Do something
break;
}
if (($remBalance - $qtytoAdd) < 0) {
$qtytoAdd = $qtytoAdd - $remBalance
} elseif (($reqRemBal- $qtytoAdd) < 0) {
$qtytoAdd = $qtytoAdd - $reqRemBal
}
}