какое условие верно в операторе if - PullRequest
0 голосов
/ 02 февраля 2012

говорят, что у меня есть if утверждение как таковое

if(condition1 || condition2 || condition3)
{
 //do something
}

Можно ли узнать, какое из 3 условий было выполнено, когда мы входим в цикл?

Ответы [ 7 ]

3 голосов
/ 02 февраля 2012

Да, вы можете проверить каждый в отдельности с помощью чего-то вроде:

if(condition1 || condition2 || condition3) {
    if (condition1) { doSomethingOne(); }
    if (condition2) { doSomethingTwo(); }
    if (condition3) { doSomethingThree(); }
    doSomethingCommon();
}

при условии, конечно, что условия не могут измениться в промежуточный период (например, с потоками, прерываниями или отображением в память)I / O, например).

1 голос
/ 02 февраля 2012

Простой метод.

if(condition1 || condition2 || condition3)
    {
     if(condition1){
      //do something
     }
     if(condition2){
      //do something
     }
     if(condition3){
      //do something
     }
}

Или, если вы знаете, что будет выполнено только одно из условий, рассмотрите возможность использования switch.

1 голос
/ 02 февраля 2012

Можно выяснить, какое из условий было истинным, выполняя запросы к каждому из них, используя другое условие if, эффективно делая первое, если оно бесполезно.

1 голос
/ 02 февраля 2012

Нет.Вам нужно будет сделать что-то вроде:

if(condition1 || condition2 || condition3)

{

if (condition1) {
}

if (condition2) {
}

if (condition3) {
}

//do something

}

0 голосов
/ 02 февраля 2012

Нет.Однако вы можете достичь с помощью:Использование отдельно, если еще в пределах 3 или условий или ii.разбить три или условия в отдельных парах, чтобы найти подходящее значение

0 голосов
/ 02 февраля 2012

У вас есть операторы короткого замыкания. || и &&.

Так скажем, например, у вас есть условие,

if (x && y || z)

Если x && y не имеет значения true, тогда y и z никогда не сравниваются. Однако, если X и Y верны, тогда он будет проверять y или z. В этом случае ваше истинное значение исходит из того факта, что x и y истинны, а y или z истинны.

0 голосов
/ 02 февраля 2012

Прежде чем позвонить в оператор if, вы можете позвонить:

System.out.println(condition1);
System.out.println(condition2);
System.out.println(condition3);

чтобы узнать, какое из условий было истинным. Если вы хотите, чтобы программа работала иначе, в зависимости от условия, вам нужно поместить этот код в отдельный оператор if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...