java入门:bug记录

java入门:bug记录,第1张

记录一个自己写的bug,

Java 1~1000找完数 ru

for(int i = 2;i <= 1000;i++){
		
		int x = 0;
		
		for(int a = 1;a <= i;a++){
			
			if(i % a == 0){
				x += a;	
			}

		}
		if(i == x){
			System.out.println(x);
		}
			
			
		
	}

如上图 错误代码 导致 i == x 判断不到true,所以没有结果输出;

瞅了半个小时,我悟了 ,内部的for循环的 a <= i;不对,因为有 = 存在,导致下一步if 判断true ,然后x 追加 a,此时 a = i;,所以循环结束后 x 一定大于 i,下一段代码的if(i == x){ System.out.println(x);}中if 判断不到true,没法输出结果。


正确代码如下

for(int i = 2;i <= 1000;i++){
		
		int x = 0;
		
		for(int a = 1;a < i;a++){
			
			if(i % a == 0){
				x += a;	
			}

		}
		if(i == x){
			System.out.println(x);
		}
			
			
		
	}

当然,第一次写肯定不会只写这一种bug(新手写bug的能力简直无敌奥),这里记录一下bug情况。


1. 结果带有24;

2. 结果重复;

3.结果带有1;

等等。


(狗头保命)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/563383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存