2011-06-30 4 views
0

をループしている私はOracle's Java Tutorialsから、次のコードを修正:私はJavaで正規表現を使用する方法を学習しようとしていますしばらく(Matcher.find())無限

import java.util.regex.Pattern; 
import java.util.regex.Matcher; 

public class RegexTestHarness { 

public static void main(String[] args){ 

    while (true) { 
     Pattern pattern = Pattern.compile("foo"); 
     Matcher matcher = pattern.matcher("foo foo foo"); 

     boolean found = false; 
     while (matcher.find()) { 
      System.out.format("I found the text \"%s\" starting at " + "index %d and ending at index %d.%n", matcher.group(), matcher.start(), matcher.end()); 
      found = true; 
     } 
     if(!found){ 
      System.out.format("No match found.%n"); 
     } 
    } 
} 
} 

。 (正規表現についてはかなり自信がありますが、Javaクラスでは使用できません)Eclipseを使用しています。これは私にはあまり知られていません。コンソールをゼロに初期化しないように(私はチュートリアルで警告したように)コンソールを取得する方法を見つけられなかったので、静的な値を使用していて、何か新しいものを試してみるたびに再コンパイルしています。私は私が間違って何をやっている

終了当たるまで

I found the text "foo" starting at index 0 and ending at index 3. 
I found the text "foo" starting at index 4 and ending at index 7. 
I found the text "foo" starting at index 8 and ending at index 11. 
I found the text "foo" starting at index 0 and ending at index 3. 

など、など、など:私はこのコードを実行すると

は、私は無限ループを取得しますか?

ありがとうございました。

Nevermind ...>。 <何らかの理由で、私は外に無限ループが見えませんでした。私はそれが問題だったもう一つのループであると全面的に仮定しました。

+2

代わりに、あなたの受け入れ答えとして最も助け答えをマークしてください。質問を削除するよう求めています。それは他の初心者にとって有益かもしれません。 – alexcoco

答えて

10

現在、コードのその部分にはwhile(true)があります。 while(true)は無限ループであり、決してそれを打破していないようです。

+0

ええ、私は投稿した直後にそれを見ました...>。< – Laura

+0

それは大丈夫です。 – RMT

7

while(true)決して終了するように!

+3

+/- 1、あなたの声であまりにも疑わしい。 :) – mre

+0

もう少しdoubtfullになるように編集されています:) –

+0

+1ハハは良いです! – mre

3

外部while(true)ループはデモ用のもので、入力を求めることができます。あなたは入力を求め続ける必要はありません。したがって、while(true)ループを削除する必要があります。

3

whileループに終了条件はありません。

リンクされたページの演習の説明には、プログラムが繰り返しループすることも記載されています。

3

while(true){...}は、無限ループとして知られています。このようなループの実行を停止する唯一の方法は、そうでない場合は、コードのブロックで立ち往生することがあります、break挿入することです

enter image description here

+1

ある時点では、電源やハードウェアのコンポーネントが故障するので、それは悪いことではありません... – tomfumb

関連する問題