我不懂一行简单的代码

时间:2018-08-30 07:32:50

标签: java arrays boolean-expression

下面是一行:

if (!seatNum[i]) 

我不明白这行的目的。代码:

 if(economyClass<5) {
    for(int i=5;i<seatNum.length;i++) {
        if(!seatNum[i]) {
            seatNum[i]=true;
            System.out.println("Economy Class. Seat number: "+(i+1));
            economyClass++;
            break;
        }
    }
 }

5 个答案:

答案 0 :(得分:3)

看起来seatNum是布尔数组,用于标记是否就座。

if(!seatNum[i])是不坐席的情况,类似但更短的检查方法seatNum[i] == false

您将其标记为seatNum[i]=true;,并将经济舱号增加economyClass++;

答案 1 :(得分:2)

假设seatNum[]是一个布尔数组,表示: 如果i的索引seatNum处的元素为假,则继续。

您也可以将其读为:if(seatNum[i] == false)

答案 2 :(得分:1)

seatNum[]必须是布尔数组,并且!seatNum[i]扩展为(seatNum[i]==false),其结果为truefalse。因此,它正在检查seatNumber是否未被占用,以及是否未被分配。

答案 3 :(得分:1)

在Java中,!也称为布尔取反运算符,它的作用是反转布尔值:

!true => false
!false => true

为了使发布的代码编译seatNum数组,应包含布尔值。

答案 4 :(得分:0)

我可以假设seatNum数组为布尔型,因为您还没有提到数组seatNum的数据类型。 如果我的假设是正确的,则ith索引中数组的内容可以为true或false,如果!true等于false,则代码的直接行将在ith索引中设置true。 一行!是逻辑上的非运算符,如果不是true则表示false。

希望这可以帮助您探索有关Java运算符的更多信息