【JetBrains IDE问题】:在if/else/for/while/do语句中只有一行没加大括号,IDEA提示错误

JetBrains IDE问题——在if/else/for/while/do语句中只有一行没加大括号,IDEA显示为错误

一、问题

1.问题场景

为了省事或者维护旧代码,在if/else/for/while/do语句中只有一行没加大括号,有过多并不影响运行的错误,但又不敢批量修改,怕出现bug

2.问题描述

在if/else/for/while/do语句中只有一行没加大括号,IDEA显示为错误

以if为例:
在这里插入图片描述
在这里插入图片描述


3.本解决方案优势

  • 亲测可用,一劳永逸
  • 可随时取消和启用

二、原因分析

根据代码逻辑规范,此类情况是一种错误容易出现问题,如:

例子1

public static void main(String[] args) {
    int a = 0;
    int b = 0;
    if (b != 0)
        a = 1;
        b = 1;
    System.out.println("a:" + a);
    System.out.println("b:" + b);
}
//实际输出为
a:0
b:1

预计的情况是if中的

a = 1;
b = 1;

都不会执行,因为if要求b!=0的时候才会执行
但实际上,因为if不加大括号的作用域只有一条语句,而;就是一条语句的结束,所以

b = 1;

实际上是不受if影响的,只有a=1是受if影响的,所以a=1不会执行而b=1会执行
这个是新手常犯的错误,if忘记加括号,因为只要缩进了就会执行

例子2

public static void main(String[] args) {
    if (false)
        int a = 0;
}
// 编译报错,此处不允许使用变量声明

java规定在此类情况下都不允许使用变量声明,原因我觉得是这样就算可以,也没有意义,变量刚初始化,没有使用就要销毁,这样只是在浪费资源,毫无意义


三、解决方案:

编辑器检查配置

四、具体流程

1.打开设置(Ctr+Alt+s)

2.依次打开编辑器->检查(editor->inspections),输入大括号进行搜索在这里插入图片描述

3.将在if/else/for/while/do语句中必须使用大括号,即使只有一行代码,避免使用下面的形式:if (condition) statements;的检查的严重等级改为警告(Warning)(如有其他检查涉及,也需修改)

在这里插入图片描述


五、总结和发现

  1. 推荐在写代码的时候遵循代码规范,在面对旧代码的时候,最好也不进行修改,把错误提示改成警告就好
  2. 浪费时间解决小问题的意义,不只是以后再遇到同样的问题时烦躁,坏了自己的心情,更是自己乐于去解决问题,学习新知识的态度!
  3. 用更多的时间在解决问题后分享出来,不只是加深对于解决问题过程的理解,更是让别人在遇到同样的问题的时候,能够少浪费一点时间,不重复造轮子!
  4. 通过学习解决问题,是一个终身学习的程序猿,所必须的素养
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值