黑马程序员技术交流社区
标题:
返回值问题
[打印本页]
作者:
hwlllr
时间:
2014-1-20 19:48
标题:
返回值问题
本帖最后由 hwlllr 于 2014-1-20 22:20 编辑
判断一个质数(只能整除1和本身的数为质数),然后我写了个方法,返回true和flase来判断是否为质数,但是方法出了点问题,我是如下这么写的
public static bool ZhiShu(int number)
{
for (int i = 2; i < number; i++)
{
if (number % i == 0)
{
return false;
}
else
{
return true;
}
}
}
提示我Program.ZhiShu(int):并非所有的代码路径都返回值。 然后看视频正确的如下
public static bool ZhiShu(int number)
{
for (int i = 2; i < number; i++)
{
if (number % i == 0)
{
return false;
}
}
return true;
}
我没理解为什么写在循环外面,都没有判断条件。
作者:
矫情
时间:
2014-1-20 21:01
因为return语句的作用是返回一个值并退出当前方法。按照你写的方法,当number=9时,i=2时,if判断为false,进入else,返回值为true。循环了一轮就结束,完全没有达到目的,还输出了错误的结果。把return写在循环外面,则表示只要number能被i整除就跳出该方法,返回值为true。
作者:
haxyek
时间:
2014-1-20 21:08
首先有个逻辑问题:
判断是不是质数要从2开始,一直到数字本身是不是有整除数,注意要从2开始,到数字本身
那么这里有个循环,i从2到num-1,是不是有整除,
有可能这个数不能被2整除,但是被3整除了,比如9这是一个循环过程,
而你的代码,判断:从2开始判断,如果能被2整除那么返回false,如果不能被2整除,是不是就返回true了呢?而9这个数字。。你懂得。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2