初试Java遇到的愚蠢的错误集

1. 在1 1 2 3 5 8 13 21.。。。这样一组有规律的数据,编程时

		int f1 = 1,f2 = 1,sum = 0;
		//输入想要得知第几个月的兔子总数
		Scanner input = new Scanner(System.in);
		System.out.println("请输入想要得知第几个月的兔子总数:");
		int month = input.nextInt();
		int i=3;      //从第三个月开始统计兔子数
		while(i<=month)
		{
			sum = f1 + f2;
			f2 = sum;
		        f1 = f2;  //开始居然将最近的两处写颠倒,造成f1=f2=sum,慎重变量赋值,这种错误需要一眼就能看出来!
			i++;
		}

2. 在统计一个数是否是素数时,需要查看是否从2到sqrt(m)都能够被整除,这里具体循环的时候是:2,3,.....sqrt(m),sqrt(m)包括在内!

3. 小白今天三次犯了for ( int i = str.length( ) - 1 ; i > = 0  ;i ++) 这种数组越界的错误,归根结底还是思维习惯的问题,i ++写多了,代码不过脑,这是一种很严重的代码盲目,对自己熟悉的东西完全不加思考!

4. 小白今天居然写了一个for ( int i = 0 ; i < input . nextInt ( ) ; i + + ) 这种死循环的语句,每次循环,都要输入一个数字,然后死循环,小白居然为此理解了10分钟才想通!

5. 在编程题:要求输出下列图形中:

   *
  ***
 *****
*******
 *****
  ***
   *

小白知道System.out.println() 表示换行输入 和 System.out.print() 表示不换行输入,但是对于这一题中的每一行,小白困惑于怎样输出前面有多个空格的*,完全没有想到可以先输出空格,然后再输出*,对 System.out.print() 的理解过于浅薄,只停留在不换行输入的表面理解,没有透彻!

5. 在将数组元素往前挪一个位置的时候(在删除数组某一个元素后的操作),小白居然写出了name [ k ] = name [ k++ ] 这样脑抽的代码!!脑盲到name [ k++ ] 和name [ k + 1 ]的区别都不知道了吗?!

6. 在对数组元素进行操作时,一定要审核是否存在数组越界的问题,比如下文代码:

for ( int i = index ; i < name.length ; i ++ )

{

name [ i ] = name [ i + 1 ] ; //当i = name.length -1 (最后一个元素) 时,这时就会造成数组越界,同时确定name.length长度的数组最后一个元素的下标为name.length -1

}

7.  小白在调试name [ i ] . equals ( str )居然报错:空指针,后来排查发现,若name [ i ] 是null 的话,java就获取不到 name [ i ] 的地址,也就不能使用,所以在引用一个字符串数组元素时候,一定要注意和判断String类型的数组元素是否为空值

8. 小白在定义变量名称的时候,将局部变量的名称不小心与全局变量的一样,导致全局变量作为一个循环变量在循环中就这样死循环了,注意,局部变量的名称最好不要和全局变量重合,因为无法快速判断全局变量的值,又是涉及到什么操作,若是局部变量和全局变量名称一样,很可能会误入歧途!

9. m.receive( " 34.56f " )这里的34.56f 的类型是String,不是float型,因为是用两个“ 括起来的!

10. 小白今天在编码的过程中,一个小小的场景竟然遗漏了N个异常因素,懊恼的总结到:在程序的编码过程中,若是不注重场景,考虑全面,10年,你也只是一个programmer!一个产品的好坏除了性能,更多的是功能~

11. 定义了一个Dvd类,然后创建了对象数组Dvd [ ] dvd = new Dvd [ 10 ] ; 在以for ( int i=0; i<10; i++) dvd [ i ].id = i ;时居然报空指针的错误,经追查,原来我虽然声明了一个对象数组,但是对于对象数组里的每个dvd【i】对象我并没有声明,因此改为:

Dvd [ ] dvd = new Dvd [ 10 ] ; 

for ( int i=0; i<10; i++) 

{

dvd [ i ] = new Dvd();

dvd [ i ].id = i ;

}

12, break想要跳出某个循环,continue跳出本次循环,但是return可以跳出某个方法

13. 今天小白写了4个类,然后写了一个测试类来测试一下运行是否畅通,好家伙,一直报错“Syntax error on token "ben", VariableDeclaratorId expected after this token”,小白一直排查了10几分钟,来来回回每一处每一处的都检查了,没问题,转了个头,回头就发现我的测试类里没有main方法,所有程序的入口都是从main函数开始的,我居然因为这个耗费了10几分钟来来回回的审视着我写的每个类,每个属性,每个方法,必须刻骨的记住!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值