java运行结束的问题

img

img

img

img

img


为什么我最后一张图和倒数第二张图结束运行情况不一样?这个代码达到了目的但是最后一张图的反馈为什么是这样?

因为u的赋值是在swtich中的default里面的,而判断又是在switch外的,当你输入的java的时候执行的是case里面的内容,并不会执行default下的代码块,所以当switch结束后,u并没有赋值,还是默认值null,这个时候进行equals判断就会报错,你可以把u的判断放到default下面的,参考如下:

default:
  System.out.println("本公司无该部门");
  System.out.println("是否重新输入?Y/N");
  u = sc.nectLine();
  if (u.equals("Y")) {
    continue;
  } else {
    System.out.println("输入结束");
    break;
  }
  

u为空值,出现了空指针异常