Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的PHP循环不工作?或者我必须添加';如果';? 假设我开着一辆汽车在环线上行驶。在循环中,有一个 门。每次我想开车进门,我都要花点时间 一些钱 原来我的钱是十万 当我的钱超过50000元时,我会把其中的5%花在购物上 入场费 当我的钱等于或少于50000元时,我就花5000元作为通行费 我想知道我有多少次可以通过这扇门 第一个while循环有效。但是第二个while循环不起作用。你能告诉我为什么吗 $money=100000;//我原来的钱 $a=0;//$a定义了我可以花多少次钱 //当我的钱超过50000元时,我会花其中的5%作为通行费。 而($money>50000){ $money=$money*0.95;//每次消费后剩下的钱 $a++;//我能花多少次钱。 } 回声$a.“”//$到目前为止,我已经走过这扇门14次了。 回音$money.“”//$到目前为止我还剩下48767.497911553美元。_Php_Loops - Fatal编程技术网

为什么我的PHP循环不工作?或者我必须添加';如果';? 假设我开着一辆汽车在环线上行驶。在循环中,有一个 门。每次我想开车进门,我都要花点时间 一些钱 原来我的钱是十万 当我的钱超过50000元时,我会把其中的5%花在购物上 入场费 当我的钱等于或少于50000元时,我就花5000元作为通行费 我想知道我有多少次可以通过这扇门 第一个while循环有效。但是第二个while循环不起作用。你能告诉我为什么吗 $money=100000;//我原来的钱 $a=0;//$a定义了我可以花多少次钱 //当我的钱超过50000元时,我会花其中的5%作为通行费。 而($money>50000){ $money=$money*0.95;//每次消费后剩下的钱 $a++;//我能花多少次钱。 } 回声$a.“”//$到目前为止,我已经走过这扇门14次了。 回音$money.“”//$到目前为止我还剩下48767.497911553美元。

为什么我的PHP循环不工作?或者我必须添加';如果';? 假设我开着一辆汽车在环线上行驶。在循环中,有一个 门。每次我想开车进门,我都要花点时间 一些钱 原来我的钱是十万 当我的钱超过50000元时,我会把其中的5%花在购物上 入场费 当我的钱等于或少于50000元时,我就花5000元作为通行费 我想知道我有多少次可以通过这扇门 第一个while循环有效。但是第二个while循环不起作用。你能告诉我为什么吗 $money=100000;//我原来的钱 $a=0;//$a定义了我可以花多少次钱 //当我的钱超过50000元时,我会花其中的5%作为通行费。 而($money>50000){ $money=$money*0.95;//每次消费后剩下的钱 $a++;//我能花多少次钱。 } 回声$a.“”//$到目前为止,我已经走过这扇门14次了。 回音$money.“”//$到目前为止我还剩下48767.497911553美元。,php,loops,Php,Loops,我的问题是为什么以下代码不起作用 //当我的钱等于或少于50000时,我会花5000作为通行费。 当($money当($money当($money当($money当($money当($money在你的第二个循环中,只要你的钱少于50000,你就会通过,因为你只会减少你的钱的数量,你会永远呆在那里,我想一旦你达到0美元或更少,你就会停止它,所以你可以这样做: while($money >= 0 && $money<=50000) 当($money>=0&&$money

我的问题是为什么以下代码不起作用

//当我的钱等于或少于50000时,我会花5000作为通行费。

当($money
当($money
当($money当($money当($money当($money在你的第二个循环中,只要你的钱少于50000,你就会通过,因为你只会减少你的钱的数量,你会永远呆在那里,我想一旦你达到0美元或更少,你就会停止它,所以你可以这样做:

while($money >= 0 && $money<=50000)

当($money>=0&&$money在你的第二个循环中,只要你的钱少于50000,你就会通过,因为你只会减少你的钱数,你将永远留在那里,我想一旦你达到0$或更少,你就想停止它,所以你可以这样做:

while($money >= 0 && $money<=50000)

当($money>=0&&$money时,问题是您的第二个循环条件:

while($money<=50000) 

while($money问题在于您的第二个循环条件:

while($money<=50000) 

while($money首先我检查我还有钱:

$money = 100000; //the original money I have
$a= 0 ; // $a defines  how many times I can spend the money
$b = 0; //defines how many turns I have done;
while($money>0){
    if($money>50000){ //First option - i loose 5% of my money
        $money = $money * 0.95;
        $b = $b+1;
    }else{ //I already know that I have money
        if($money>5000){ //I can do another turn
            $money = $money - 5000;
            $b = $b + 1;
        }else{ //I have less then the money I need to do another turn
            echo "You made $b turns and now you have only $money left";
            $money = 0; //I reset the money so I get out of the while loop
            exit(); //i go out of the loop since I have nothing more to spend
        }
    }
}
根据这些数字,该代码的结果将为:

你转了23圈,现在只剩下3767.497911553了


我不知道您是否还想模拟一次转弯时还剩多少次。这将导致程序的不同设置。

首先我检查我是否还有钱:

$money = 100000; //the original money I have
$a= 0 ; // $a defines  how many times I can spend the money
$b = 0; //defines how many turns I have done;
while($money>0){
    if($money>50000){ //First option - i loose 5% of my money
        $money = $money * 0.95;
        $b = $b+1;
    }else{ //I already know that I have money
        if($money>5000){ //I can do another turn
            $money = $money - 5000;
            $b = $b + 1;
        }else{ //I have less then the money I need to do another turn
            echo "You made $b turns and now you have only $money left";
            $money = 0; //I reset the money so I get out of the while loop
            exit(); //i go out of the loop since I have nothing more to spend
        }
    }
}
根据这些数字,该代码的结果将为:

你转了23圈,现在只剩下3767.497911553了



我不知道你是否还想模拟你在一个回合中还剩多少次。这会导致程序的不同设置。

我们完全误解了,第二个循环紧跟在第二个循环之后,它不会替换它。
$money=48767.497911553
当进入第二个循环时,它准确地进入,并停留在那里。它永远不会离开。因为你只是在减小值。所以条件总是满足的。你处于一个无限循环中。我们完全误解了,第二个循环紧跟在第二个循环之后,它不会取代它。
$money=48767.497911553
当进入第二个循环时,它进入并停留在那里。它永远不会离开。因为你是只有减小值。所以条件总是满足的。你在一个无限循环中。
$money=48767.497911553
当进入第二个循环时我知道,但这将是一个无限循环,因为只要$money@DarkBee哦,好吧,我只是对被否决感到困惑:)我被OP中说“第一个循环有效,第二个循环无效”的部分弄糊涂了,但很明显,对于infin循环,页面应该抛出一个错误(很可能执行超时)
$money=48767.497911553
当进入第二个循环时我知道,但这将是一个无限循环,因为只要$money@DarkBee噢,好吧,我只是对被否决感到困惑:)OP中说“第一个循环有效,第二个循环无效”的部分让我感到困惑,但很明显,对于infin循环,页面应该会抛出一个错误(很可能是执行超时)。嗨,Lelio,谢谢你的回答。:)信息非常丰富。但我感到困惑。我将第二个while循环的开头从“while”改为“while”($money你是对的。我在检查剩余的钱之前减少了钱。顺便说一句,减少循环次数总是更有效。使用这种逻辑,你只需运行一次,就可以得到你想要的所有结果谢谢。我看到了变化。我可以问一下$a在你的代码中的用途吗?我只看到一次,然后它就消失了?你知道吗将a定义为您可以完成的左转次数。您的代码没有对其进行任何计算。正如我在前面的评论中所说,我使用b表示已完成的转弯。如果您想编写类似于“您完成了3个转弯。您还剩20个”的内容,则需要使用a并更改代码a bitHi Lelio,谢谢您的回答。:)非常有用。但是我很困惑。我将第二个while循环的开头从“while”改为“while”($money你是对的。我在检查剩余的钱之前减少了钱。顺便说一句,减少循环次数总是更有效。使用这种逻辑,你只需运行一次,就可以得到你想要的所有结果谢谢。我看到了变化。我可以问一下$a在你的代码中的用途吗?我只看到一次,然后它就消失了?你知道吗将a定义为您可以完成的左转次数。您的代码没有对其进行任何计算。正如我在前面的评论中所说,我使用b表示完成的转弯。如果您想编写类似于“您完成了3个转弯。您还剩20个”的内容,则需要使用a并稍微更改代码