простое сравнение, вызывающее проблему - PullRequest
0 голосов
/ 27 ноября 2011

У меня есть следующий код:

 int bookingType=0;
        //mapSize=mapLoaded.size();

        DateTime startx = new DateTime(startDate.getTime());
        DateTime endx = new DateTime(endDate.getTime());

        //booking status
        boolean possible = false;

        //Booking type: 1 = Project, 2 = Training

        if(requestType.equals("Project")){
            bookingType = 1;
        }else if(requestType.equals("Training")){
            bookingType = 2;

        }

        //produces submap
        //mapSize = bookingType;

        bookingType = 1;
        if(bookingType==1)
        {
            .....
        }else if(bookingType==2){
           ....
       }

Ошибка после тестирования - это когда я проверяю значение bookingType.обычно == сработает, но здесь, похоже, его вообще пропускают.Я проверил значение bookingType, и оно меняется на 1 или 2 в зависимости от requestType.Почему if () не работает?

Спасибо,

Ответы [ 2 ]

1 голос
/ 27 ноября 2011

Согласно вашему коду он должен идти первым, если условие.

Не могли бы вы поставить условие else и напечатать значение в bookingType?

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

1 голос
/ 27 ноября 2011

здесь вы устанавливаете bookingType:

if(requestType.equals("Project")){
    bookingType = 1;
}else if(requestType.equals("Training")){
    bookingType = 2;
}

здесь вы переопределяете его:

bookingType = 1;
if(bookingType==1)
{
    .....
}else if(bookingType==2){
    ....
}

конечно, если if выполнит только часть if.Поскольку вы публикуете неполный код, вы можете попробовать добавить условие else в цепочку if-else if и посмотреть, выполняется он или нет.

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