このコードで何が悪いのでしょうか?Netbeansのは、コードをコンパイルしていません

プリンス:

コードのこの部分で間違っては何ですか?私たちは2つの文字列を持っているし、我々は最初の1から2番目の文字列を抽出することができます何回印刷する必要が疑問を解決しようとしています。私はNetbeansのが応答しなかった、このコードを実行しているとき、それは25秒で、このような30秒のように秒単位で時間について取っています。

public class nine {
  static int res=0;

  public static void main(String[] args) {
    int c=0;

    String as="nniinneetteeeenn";       // first string

    String ss = "nineteen";             // second string
    char a[]= ss.toCharArray();
    char b[]= as.toCharArray();
    boolean result = true; 

    while(result == true){
      for(int i=0;i<a.length;i++){
        for(int j=0;j<b.length;j++){
          if(a[i]==b[j]){
            b[j]=32;
            res=1;
            break;
          }
        } //j loop ends

        if(res==0)
          break;
      } // i loops ends

      if(res==0)
          result=false;

      else{
          result=true;
             c++;
         }
      } // while loops ends       

      System.out.println(c);
  }
}
メリーランドMoshfiqurラーマンロニー。:

あなたはどんな試合を持っていない場合にのみ動作します。解像度が0以外に変更されたら、それはあなたのコードは、任意の一致が見つかった場合、なぜのは、それが無限ループに行くことを0に戻って変更する可能性を持っていません。

一度ためres = 1に実行され、あなたが再び0にそれを再割り当てすることはありません。それは、実行時に理由ですres = 1、それが無限ループに入ります

編集したあなたは0にあなたの他の部分には、ちょうどリセットRESこれを行うことができます

    else{
        result=true;
        c++;
        res=0;
       }

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=296755&siteId=1
おすすめ