Java错误记录——OJ为主


个人错误记录,如果大佬发现我的理解或者表述有错误,烦请指正,不胜感激。欢迎小伙伴的相关分享,向好的方向走一步,就离坏的结果远一步。共勉

语法错误

办法
初期,百度,解决问题,然后记下来,熟能生巧
后期,啃底层源码,明白实现原理

程序一直在等待,无法继续进行

依次输入n个数,不能直接用像if(scan.nextInt() == 25)这样的条件,如果按顺序下来的next int 并不等于25,程序就会一直等待
解决办法:int m;m = scan.nextInt();用m来判断

Scanner读取数据不完整

第一行 输入n(int型),表示下面将输入的n个元素
第二行 n个元素,以空格隔开
分别用int n = scan.nextInt();和String s = scan.nextLine();读取第一行的数和第二行的数
s读取失败,因为nextLine();遇到回车后会停止继续读入,并舍弃换行。应该在n和s之间添加scan.nextLine();吸收掉中间的回车

数组越界

比如for循环中存在if(a[i+1] == a[i]+1),当i到最后一个元素时,if条件就会越界。所以声明数组时,应该在原来的长度加一,然后改变for循环的遍历条件i < a.length-1

new构建数组长度为n的数组a,然后再用a = s.toCharArray();数组a的长度变为字符串s的长度

字符串未改变

使用s.replaceFirst();后应该再赋值给s,因为s只是数组的管理者,并不能改变这个数组

或者改使用StringBuilder

逻辑错误

办法
写代码之前,用思维导图或者其他方式,把程序大致要分成什么部分,分别实现那些功能,特殊情况的处理等,提前想清楚。然后再开始写代码

记录
没有考虑到边界值
陷入死循环

输出错误

格式问题,多了空格少了空格,输出顺序
没有理解题意

小结

OJ的题目,要考虑多样例输入的问题Scanner+while(hasNext)
OJ给的数据都要用到

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用JavaOJ判断一个数是否为质数,可以参考以下代码: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int x = in.nextInt(); boolean isPrime = true; if (x <= 1) { isPrime = false; } for (int i = 2; i <= Math.sqrt(x); i++) { if (x % i == 0) { isPrime = false; break; } } if (isPrime) { System.out.println("This is a prime."); } else { System.out.println("This is not a prime."); } } } 这段代码会从键盘上输入一个正整数x,然后判断x是否为质数。如果x是质数,则输出"This is a prime.",否则输出"This is not a prime."。请注意,这段代码与引用和引用中的代码非常相似,但有一些细微的差别。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Java语法练习SDUTOJ判断素数(循环结构)](https://blog.csdn.net/Cherishlife_/article/details/85223731)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [ZZULIOJ 1057: 素数判定,Java](https://blog.csdn.net/qq_52792570/article/details/119005501)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值