今天一个简单的程序调试了老半天 最后才发现原来是自己设的当满足条件时用来作为标志的变量在改变后,当不满足条件时没有语句使之恢复成为初始值。
错误的代码:
/**
* @(#)Zhishu.java
*
* Zhishu application
*
* @author kuroro
* @version 1.00 2011/9/8
*/
public class Zhishu {
public static void main(String[] args) {
int sum = 0;
int flag = 0;
for(int i=3;i<=100;i++)
{
for(int j=2;j<i;j++)
{
if(i%j==0)
{
flag = 1;
break;
}
}
if(flag==0)
sum += i;
}
System.out.println(sum);
}
}
改正后的代码
/**
* @(#)Zhishu.java
*
* Zhishu application
*
* @author
* @version 1.00 2011/9/8
*/
public class Zhishu {
public static void main(String[] args) {
int sum = 0;
int flag = 0;
for(int i=3;i<=100;i++)
{
for(int j=2;j<i;j++)
{
if(i%j==0)
{
flag = 1;
break;
}
flag=0;//此处应该将flag还原为原来的值
}
if(flag==0)
sum += i;
}
System.out.println(sum);
}
}