为什么输出的结果是6?不应该是5吗?

为什么输出的结果是6?不应该是5吗?

<?php


   //定义sum函数

   //函数中计算数值

   //调用函数,传入数值

   header("content-type:text/html;charset=utf-8");

function fun($a,$b){

    global $sum;

    if (is_numeric($a) && is_numeric($b)){

        for ($a=$sum;$a<=$b;$a++){

            $sum+=$a;

        }

        echo $sum;

    }

}

fun(2,3);

?>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小尤 2019-07-17 15:28:31

同学你好,1.  在原代码中因为同学循环$sum变量,可$sum为0所以在运行for循环中的$a++时,$a的值就为1,2,3得到结果为6。因是从1开始所以fun(1,100),不会影响结果。同学可以在for循环中输出$a进行测试。

2. 在上次回复中少了一行代码(for),导致运行报错。对代码进行修改:

<?php
header("content-type:text/html;charset=utf-8");
function fun($a,$b){
    global $sum;
    if (is_numeric($a) && is_numeric($b)){
    //假设数值为2和3,那么就是$i初识值1,使用一个变量$sum接收值并相加,直到$i小于等于3时循环结束而每次循环$i值+1。
        for ($i=$a;$i<=$b;$i++){
            $sum+=$i;
        }
        echo $sum;
    }
}
fun(2,4);
?>

给您的学习带来不便,深感抱歉!

好帮手慕小尤 2019-07-17 13:48:31

同学你好,for循环错误,导致计算数据不正确。代码如下:

<?php

header("content-type:text/html;charset=utf-8");
function fun($a,$b){
    global $sum;
    if (is_numeric($a) && is_numeric($b)){
        //假设数值为2和3,那么就是$i初识值1,使用一个变量$sum接收值并相加,直到$i小于等于3时循环结束而每次循环$i值+1。
            $sum+=$i;
        }
        echo $sum;
    }

}

fun(2,3);

?>

祝学习愉快!

  • 提问者 weixin_慕沐1043483 #1
    老师,我还是不是很懂。你代码里面的$i不是还没有赋值吗?我拿去运行查看了一下,显示了错误:Parse error: syntax error, unexpected '}' in F:\PhpStudy20180211\PHPstudy\PHPTutorial\WWW\1.php on line 14.
    2019-07-17 14:39:52
  • 提问者 weixin_慕沐1043483 #2
    而且我上面的第一个提问的代码是拷贝了另一个同学的,我只是把fun(1,100)改成了fun(2,3)而已。因为你的回复中说那位同学的代码对了,但是我拿来测试的值又不一样,所以我才来问你的。
    2019-07-17 14:45:30
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4928    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师