php数组循环遍历偶数相加

1-50个数字中的偶数提取出来,然后相加得到最后值我想要两种方法一种是定义数组在数组中添加1-50然后循环遍历出偶数然后再相加第二种是不用数组的方式就用for循环whil... 1-50个数字中的偶数提取出来,然后相加得到最后值
我想要两种方法
一种是定义数组 在数组中添加1-50 然后循环遍历出偶数 然后再相加
第二种是不用数组的方式 就用for循环while循环得出结果
希望路过的大大看一看如何写.
第二种最好不要用函数 因为本人初学php 还是很不习惯php这种不需要声明的方式 而且我对他的函数库完全不熟悉.
用java倒是很容易 但是题目要求是php 往诸位不惜赐教
展开
 我来答
douyl_2010
2012-10-12 · TA获得超过284个赞
知道小有建树答主
回答量:422
采纳率:0%
帮助的人:102万
展开全部
1、//我用省略号省略5到50之后的数了,你可不要省略 定义了一个数字数组,里面有50个元素
$nums = array(1,2,3,4,...);

//定义一个乘积的变量$ji

$ji = 1;
foreach($nums as $k=>$v){
//foreach是循环数组的循环结构 $k就是元素的键(索引),上面的数组因为是索引数组(枚举数组),arryay(0=1,1=2,2=3,3=4,...);
//判断是不是偶数

if($v % 2 == 0){

//就是$ji = $ji * $v;

$ji *= $v;
}
}
echo $ji;
2、
$ji = 1;
for($i=1;$i<=50;$i++){
if($i %2 == 0){
$ji *= $i;

}

}
echo $ji;
更多追问追答
追问
写的略草率 竟然还成推荐答案...
$arr = range(1,50);
$sum = 0;
for($i=0;$i<50;$i++){
if($arr[$i]%2==0){
$sum += $arr[$i];
}
}
echo $sum;
这是第一个回答我的人 但是不知道为什么 没有通过审核
追答
如此受教了,不过也是想为你解决问题了。难免会有所错误,忘了还有那个函数。
唉!出于一番好心,没想到却帮倒忙了。
261798746
2012-10-12 · TA获得超过247个赞
知道小有建树答主
回答量:137
采纳率:100%
帮助的人:53.7万
展开全部
<?php
for($a=1;$a<51;$a++){ //a自增,循环,当小于51时恒成立
global $b; //设置$b为全局变量
if($a%2>0){continue;} //如果($a除以2取余大于0){跳过本次循环}
else{$b+=$a;} //否则$b递增$a;
} //循环结束
echo $b; //输出结果
?>
PHP是一种自由的语言,实现同一种结果的方法可以很多,结构可以很松散,只要思路正确,最多是由于经验不足而写的比较长。

加油!少年。

PS. 不要用数组啊,这么麻烦...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
嘟嘟乐悠
2012-10-16 · TA获得超过568个赞
知道小有建树答主
回答量:359
采纳率:0%
帮助的人:330万
展开全部
<?php
//遍历数组方式
//既然都说了用数组了,为什么不用array_sum这个函数来直接求出数组所有元素的和呢
$list=range(1,50);
foreach($list as $k=>$v){
if($v&1) unset($list[$k]);
}
echo array_sum($list),'<br>';

//for方式
$result=0;
for($i=1;$i<=50;$i++){
if(~$i&1) $result+=$i;
}
echo $result,'<br>';

//while方式
$i=0;
$result=0;
while($i<50){
if(~++$i&1) $result+=$i;
}
echo $result;
?>
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
益迎督孤云
2020-04-24 · TA获得超过3877个赞
知道大有可为答主
回答量:3193
采纳率:31%
帮助的人:198万
展开全部
<?php
//遍历数组方式
//既然都说了用数组了,为什么不用array_sum这个函数来直接求出数组所有元素的和呢
$list=range(1,50);
foreach($list
as
$k=>$v){
if($v&1)
unset($list[$k]);
}
echo
array_sum($list),'<br>';
//for方式
$result=0;
for($i=1;$i<=50;$i++){
if(~$i&1)
$result+=$i;
}
echo
$result,'<br>';
//while方式
$i=0;
$result=0;
while($i<50){
if(~++$i&1)
$result+=$i;
}
echo
$result;
?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a348876412
2012-10-12 · TA获得超过136个赞
知道小有建树答主
回答量:292
采纳率:0%
帮助的人:236万
展开全部
楼下的定义数组太蛋疼了,生成指定范围的数组直接range(1,50)就行了 。
for循环比较方便,
$sum = '';
for($i = 1; $i <= 50; $i++) {
if ($i % 2 == 0) {
$sum += $i;
}
}
echo $sum;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式