2013-08-18 8 views
1

Это всего лишь пример кода. Моя точка должна сделать: «Если слово Hello OR foo найдено, сделайте что-нибудь». Но если цикл не реагирует, даже если обе строки находятся в text. Если я использую только один условие без || в то время как цикл делает то, что я ожидаю. Как я могу это исправить? Спасибо!Использование || in while loop

public void start(){ 
Document doc=Jsoup.connect("http://www.yahoo.com").get(); 
String text=doc.text(); 

while(!text.contains("Hello")||!text.contains("foo")) 
    System.out.println("Not found."); 
    } 
} 
+0

Вы хотите использовать '&&' ... –

+0

Вам абсолютно необходимо изменить текст *** внутри цикла ***, иначе все будет потеряно, а ваш цикл никогда не закончится. Если вы уже делаете это, то, пожалуйста, покажите нам и не отправляйте сортировку, вид кода. Отправьте реальный код, чтобы мы могли его понять. –

ответ

5

У вас есть некоторые проблемы, связанные с эксплуатацией оператора.

Прямо сейчас, вы говорите, если текст не содержит привет или он не содержит foo do the loop; Использовать

while(!text.contains("Hello")&&!text.contains("foo")) 

вместо этого. Это означает, что «если текст не содержит привет и не содержит foo, многократно наводняет System.out« не найденным », пока пользователь не убьет вашу программу или JVM-штампы».

3

Вы должны изменить код следующим образом

while(!text.contains("Hello")&&!text.contains("foo")) 
    System.out.println("Not found."); 
    } 
} 
0

Вы также можете сделать:

while(!(text.contains("Hello") || text.contains("foo"))){...} 

Может быть, это то, что вы пытаетесь сделать выше.