总结新手常犯的错误
•发布于   •作者 姜岩  •586 次浏览  •来自 分享

                                                                    总结新手常犯的错误

 

       错误1:在对一个类进行命名的时候,多加了一对括号,如图:

       错误2:计算一个1-1/2+1/3-1/4+……+1/n的值,程序如下:

看起来好像没有什么问题,逻辑也都很清晰,但是结果却是:

这就是新手常常忽略的问题:没有对数据类型加以重视!在结果要考虑到不是整数的情况下,应该将参与运算的数据变成float或者是double型数据,如图:

 

错误三:在对数组进行查找操作的时候经常会在if后面加上else输出没有查找到,如图:

乍一看好像没有问题啊,找到就输出找到,没有找到就输出没有找到,不是很合理吗?我们来看看输出结果:

怎么会这么多的没有找到数据???原因是因为每次循环如果当前的arr[i]不是等于需要查找的num值,就会else输出没有找到,因为我们输入的值是6,所以前面五次都会判断为else,所以就会输出没有找到五次,如何解决这个问题?如图:

因为for循环结束才能知道是否有没有找到数据,所以应该在循环体的外面执行没有找到的语句,又因为循环可能找到了数据以后自动结束,所以要判断一下结束之后定义的标记是否变成了true,如果为真,则表示找到,不需要执行没有找到的语句,如果没有找到,mark还是为false,这个是时候打印出没有找到。

错误四:对for循环的流程不熟悉导致程序一直没有调试成功,分享给大家看一张自己做的流程图:

希望不懂的同学可以看懂for循环的流程,双重循环也是,如图:

希望我的分享能够给大家帮助,不足之处请多指正!


14 回复
fly唐朝的天空(唐秋果)

很受益,点赞

王成龙

分析的很详细、

=.=

可以,分析的很强势

rose

分析很到位,注解等各方面都很棒!

Leslie

不错 ,写的很详细,很受益,希望以后有更好的相关的帖子,加油,楼主

汪洋

分析条理清晰,上述错误犯得人也是较多,都是因为不细心,或者是因为不能理解代码的执行方式而犯错。

陶冶

总结的很不错

姜岩

@rose  @胡瑞  @Leslie  @汪洋 @陶冶 谢谢,不足之处请多指正!

姜岩

还有一点也是刚才才发现的问题就是:


但是这样可以:



姜岩

有位同学指正了我的错误,循环的顺序应该是下图:



Choices()

public class a1 
{ int a1,a2; 
{a1=1; //把它放到{}是可以的,这是java语法的问题,就算不要{}可以符合语法,那类加载时就该代码就会被执行,而类的实例还没生成,还没给a1,a2分配内存地址,如何能操作?
a2=2; 
}

public class a1 

int a1=1, //这样的代码并不是马上被执行,只有生成实例时在构造函数被执行以前才被执行
int a2=2; 


同样的
public class a1 

int a1,a2; 
void pntout(String s) 

a1=1; //这样的代码是也并不是马上被执行,当类的实例被生成后,通过该实例调用成员方法时被执行的
a2=2; 
System.out.pringln(String s) 
}; 

类似的还有静态变量和静态域代码

public class a1 

static int a1;
static int a2; 
static{a1=1; 
a2=2; 
System.out.println(a1);
}


李七天i

分析的很详细       忍不住的多看了  两遍;  

Carpe diem

收藏

姜岩

@李七天i @Carpe diem 谢谢阅读,不足之处请指正

回到顶部

©2017 Powered by 三十三行伪代码
皖ICP备17005175号-3