黑马程序员技术交流社区
标题:
求偶数个数代码的疑惑???
[打印本页]
作者:
高丽华
时间:
2013-12-30 17:12
标题:
求偶数个数代码的疑惑???
本帖最后由 高丽华 于 2014-1-1 11:03 编辑
//使用do-while算出1-100之间的偶数总和。
class Test_7
{
public static void main(String[] args)
{
int sum=0;
int x=0;
do
{
//if (x%2==0)
x+=2;//
求偶数个数为什么写x+=2能往下执行代码,而写if (x%2==0)却不能向下执行代码啊???
sum=sum+x;
}
while (x<=100);
System.out.println(sum);
}
}
作者:
轩辕冰晨
时间:
2013-12-30 17:52
楼主如果写if (x%2==0),x的值一直都是0,循环就进入死循环了。
作者:
董月峰
时间:
2013-12-30 17:56
public class test22 {
public static void main(String[] args)
{
int sum=0;
int x=0;
do
{
if(x%2==0)
sum=sum+x;
x=x+2;
}
while(x<=100);
System.out.print(sum);
}
}
可以运行结果2550
作者:
董月峰
时间:
2013-12-30 18:13
if(x%2==0)
sum=sum+x;
x++;
楼主,你的代码用if应该这样。
或者直接sum=sum+x;
x=x+2
作者:
由然自美
时间:
2013-12-30 18:47
你要写if(x%2==0),因为你并没有让x的值增加,所以一直就会打印0,成了死循环
应该是if(x%2==0){
sum= sum+x;
x++;//让x的值自增这才行
}
作者:
快乐的黑马
时间:
2013-12-30 18:51
楼主提问的问题是不是有点问题?[论坛提问] 求偶数个数代码的疑惑???应该是求某一范围的偶数个数啊!再说偶数的和,你的写法也有问题,你把sum = sum+x放在x+=2前面,然后用了do while方法,也就是说,开始始就让sum为2,偶数0没有参与运算,后面的102倒是参加了,最后计算的结果也不对。建议你还是用for循环语句好点。
作者:
快乐的黑马
时间:
2013-12-30 18:59
再说说你那个::求偶数个数为什么写x+=2能往下执行代码,而写if (x%2==0)却不能向下执行代码啊???
%是取余符号,从程序一开始,0进来,然后0%2==0,后面判断,0<100,符合,就接着进去do执行,如此反复,就是一个死循环。
下面是我写的一个代码:
class Test5
{
public static void main(String[] args) throws IOException
{
int sum=0;
int x=0;
for( x=0; x<=100; x+=2)
{
sum = sum + x;
}
System.out.println("sum="+sum);
}
}
作者:
hurryup
时间:
2013-12-30 20:02
由然自美 发表于 2013-12-30 18:47
你要写if(x%2==0),因为你并没有让x的值增加,所以一直就会打印0,成了死循环
应该是if(x%2==0){
sum= sum+x;
这哥们说的对,楼主把x的初始值设为1,do{...}里面加个自增x++就可以了.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2