在java中,是否可以向while循环中间循环插入新条件?

cgfeq70w  于 2021-08-20  发布在  Java
关注(0)|答案(4)|浏览(442)

我有一个 while(notFound) 环此循环首先检查选项“a”中指定的内容,但是循环中的某个点该选项变为“b”,在这种情况下,我需要将循环更新为: while((notFound) &&(trCollator.compare(data.getSurname("a"),current.data().getSurname("a")) == 0)) 那么,是否有语法只在选项等于“b”时才检查第二部分?

kuhbmx9i

kuhbmx9i1#

您可以执行以下操作:

  1. while((notFound)){
  2. if(option.equals("a") || (option.equals("b") &&(trCollator.compare(data.getSurname("a"),current.data().getSurname("a")) == 0))){
  3. //execute code...
  4. }
  5. }
gmxoilav

gmxoilav2#

您可以使用布尔蕴涵来处理附加条件:
»如果。。。那么…«这与 !... || ... .

  1. String option = "a";
  2. while (notFound && (!"b".equals(option) ||
  3. trCollator.compare(data.getSurname("a"), current.data().getSurname("a")) == 0))
  4. {
  5. // do stuff
  6. }
fquxozlt

fquxozlt3#

只需使用一个标志,表明您是否需要检查它。

  1. boolean flag = false;
  2. while (notFound &&
  3. (!flag || trCollator.compare(data.getSurname("a"),current.data().getSurname("a") == 0)) {
  4. ...
  5. if (somethingOrOther)
  6. flag = true;
  7. ...
  8. }

最初,, flag 是假的,所以 !flag 为true,因此跳过逻辑or运算符的第二个子句。后来,, !flag 为false,因此对第二个子句进行求值。

nwo49xxi

nwo49xxi4#

  1. // create an interface
  2. public interface myInterface {
  3. public boolean compareTo();
  4. }
  5. // create two classes
  6. public class aa implements myInterface {
  7. @Override
  8. public boolean compareTo() {
  9. // TODO Auto-generated method stub
  10. return true;
  11. }
  12. }
  13. public class bb implements myInterface {
  14. String surname;
  15. String currentSurname;
  16. bb(String surname, String currSurname) {
  17. this.surname = surname;
  18. this.currentSurname = currSurname;
  19. }
  20. @Override
  21. public boolean compareTo() {
  22. // TODO Auto-generated method stub
  23. return this.surname.equals(this.currentSurname);
  24. }
  25. }
  26. // in while loop when you hit some condition change the value of mObj like below
  27. Scanner n = new Scanner(System.in);
  28. int tmp =n.nextInt();
  29. myInterface mObj = new aa();
  30. while(tmp > 0 && mObj.compareTo()) {
  31. // some condition
  32. if(tmp == 5) {
  33. mObj = new bb("kumar", "sharma");
  34. }
  35. tmp--;
  36. System.out.println(tmp);
  37. }
  38. System.out.println("Done");
展开查看全部

相关问题