php do while 语句

2024-11-27 01:35:11
推荐回答(5个)
回答1:

T或F? 你是说ture 或 false 吧?

你的想法有两处问题:

第一个问题:$i++是先赋值再加1的,放在这里不合适;

第二个问题:既然是想判断素数,那么$i这个作为除数的变量应该从2开始才对,是不是,否则一遇到1这个数字,那是百分百跳出的。

下面就你 的问题给出程序:

$number=3; //设定要检测是不是素数的变量;设定这个数字,可以进行这个数字的素数判断;
$i=1;
do{
$b=$number%++$i; //这一行是你的关键所在,为什么用++呢?原因是为了下面的程序服务;你可以了解下php运算符。
if(!$b){ //这一行就是你问的核心问题,如何判断是真是假,也就是有没有余数。
if($i==$number){ // 如果这个数被一直除到了本身才结束,那么它一定就是一个素数。
echo "$number" . "是素数";
break; //这个是跳出语句;
}
//否则白搭!!!
echo "$number" . "不是素数";
break; //这个是跳出语句;
}
}
while($i<=$number);

?>

以上程序经过测试,可以直接复制使用。不过,因为php对数字运算的限制,最大只能处理14位整数(10000000000000),不要因为它是自动的,就太贪心了哦~~~

祝你学习成功。

如果你的电脑够快,下面这段程序会给你列出1-100000000的素数,如果不够快,哼哼,你的电脑怕是要当机一段时间了,记得慎用哦。

当然如果你真想测试到这么大数值的话,你还要修改php.ini中限定的超时时间,将php.ini中的:

max_execution_time = 30
改为:
max_execution_time = 10000

否则无法实现你的宏伟愿望。

function itisnum($number){
// $number=21433 ; //设定要检测是不是素数的变量;
$i=1;
do{
$b=$number%++$i;
if(!$b){
if($i==$number){
$haha = "$number" . "是素数
";
return $haha;
break;
}else{
}
// echo "$number" . "不是素数";
return NULL;
break;
}
}
while($i<=$number);
}
for ($i=1; $i<=100000000; $i++){
echo itisnum($i);
}
?>

回答2:

先跟说do
while执行程吧
先DO
判断否符合条件循环...能要举例明.用DO
while

for

while
,要能做
逻辑没清楚...
我举例吧.
比:要向数据库插入条数据.我知插入否功.前提我必须插入条数据.
种逻辑,for操作,while逻辑清.
do
while刚..
do{
往数据库插入条数据操作
}while(插入否功);
代码直判断否插入功,功循环
直接插入止...
用while()
加if判断能完操作..效率,思路清...
第二要跟说:
do{
?>
并表示程序结束.用结束说明PHP
跟HTML界...代码跟面xxxx?>代码连片PHP代码...

回答3:

$i=0;
do
{
//你的意思是被5整除则输出什么语句吧>?;
$i++;
if($i%5==0){
$m='素数,是T 跳出';
echo $i.'是'.$m."
";
break;
}
else
{
$m='非素数,是F继续运行';
}

echo $i.'是'.$m."
";
}
while ($i<=5);

?>

回答4:

转换就行了.如:(int)$str //转换成整数
(bool)5%$i++;//转换成bool型

回答5:

$str=567125113; //初始一个数,例如:567125113
$i=2; //除了1和此整数自身外,没法被其他自然数整除的数 所以从2开始
$j=0;
do{
if(($str%$i++)==0){
$j=0;
break;
}
$j=1;

}while($i<=intval(($str+1)/2)); //1个数不可能整除大于它的1/2的数 故可以简化
if($j==1){
echo $str.'是素数';
}else{
echo $str.'是合数';
}

?>