一个微小的调优去掉嵌套的if,else

文章目录

  • 版本一
  • 版本二
  • 版本三

精简代码

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站点击跳转浏览。

版本一

// 代码的原意是如果存在文件,就判断一个文件中内容有无,没有的话线程睡0.1s, 有的话跳出循环

    while(true){
        if(Files.exists(Paths.get("data/mkcert/"+serialNo+".crt"))){
            Path path = Paths.get("data/mkcert/" + serialNo + ".crt");
            File file = new File(String.valueOf(path));
            if (0 == file.length()) {
                Thread.sleep(100);
            }else {
                break;
            }
        }
      }

版本二

改版是限制在2s 之内 避免上面的程序死循环

  int tick = 0;
  while(tick++ < 20){
      if(Files.exists(Paths.get("data/mkcert/"+serialNo+".crt"))){
          File file = new File("data/mkcert/" + serialNo + ".crt");
          if (0 == file.length()) {
              Thread.sleep(100);
          }else {
              break;
          }
      }else {
          Thread.sleep(100);
      }
  }

版本三

改版是限制在2s 之内 反过来,当文件存在并且有内容 跳出循环 否在等待 少用了if嵌套

    int tick = 0;
    while(tick++ < 20){
        File file = new File("data/mkcert/" + serialNo + ".crt");
        if(file.exists() && file.length() > 0){
                break;
        }
        Thread.sleep(100);
    }

你可能感兴趣的:(JAVA基础,java)