我反编译的java代码,
不明白break label 的使用,baidu了一下,发现使用的方式和我反编译的这段都不同,实在是看不明白了,请知道的给解释一下.
  private String replaceString(String s, String oldString, String replaceString) {
    if (s == null) return null;
    if (s.equalsIgnoreCase("")) return s;
    StringBuffer sb = new StringBuffer("");
    int searchIndex = 0;
    int tempIndex = 0;    int i = 0;
    while (true)
      try
      {
          if ((tempIndex = s.indexOf(oldString, searchIndex)) <= -1) break label94;
          ++i;
          sb.append(s.substring(searchIndex, tempIndex));
          sb.append(replaceString);
          label94: searchIndex = tempIndex + oldString.length();
       
      }
      catch (Exception ex) {
        ex.printStackTrace();        if (i > 0) {
          sb.append(s.substring(searchIndex, s.length()));
          String r = sb.toString();
          return r; 
        }
      }
      return s;
   }说明:在   break label94 报错为:the label94 is missing.

解决方案 »

  1.   

    break 标示;
    表示跳出标示所在的循环(continue也有这种用法)但需要注意的是,所跳出的循环体得是当前循环以及其外层循环
    public class breaktest
    {
    public static void main(String[] args) 
        {
         int n=0;
        
            //标识
         ll:
         while(n<10)
         {  
          while(n<10)
          {
           System.out.println("a:"+n);
           n++;
           if(n==5){ n=10;break ll;} //你可以把这里的ll删掉看看两者区别
          }
          System.out.println(n);
         }
        }
    }
      

  2.   

    就是想问问有这种用法吗这种用发是什么意思?楼上的那种用法是正解,label都是对应着循环块的,
    可是我反编译的这个我不知道什么意思.