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

来源:2-8 编程练习

weixin_慕沐1043483

2019-07-17 10:33:03

<?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);

?>


写回答

2回答

好帮手慕小尤

2019-07-17

同学你好,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);
?>

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

0

好帮手慕小尤

2019-07-17

同学你好,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);

?>

祝学习愉快!

0
heixin_慕沐1043483
h 而且我上面的第一个提问的代码是拷贝了另一个同学的,我只是把fun(1,100)改成了fun(2,3)而已。因为你的回复中说那位同学的代码对了,但是我拿来测试的值又不一样,所以我才来问你的。
h019-07-17
共2条回复

0 学习 · 4928 问题

查看课程