【问题标题】:How to check if a specific index in a boolean array is true is C#如何检查布尔数组中的特定索引是否为真是C#
【发布时间】:2021-02-05 08:02:08
【问题描述】:

我必须创建一个简单的窗体应用程序,将客户分配到头等舱 1-5 或经济舱 6-10 的座位。我必须使用一维布尔数组。我不知道如何检查特定索引是否已设置为 True。如果数组为真,它要么继续前进,要么创建一个消息框。我只需要有关如何检查其是否真实的帮助。

for (int i = 5; i < 9; i++)<br>
{
   assignedSeat[i] = true;
   if (assignedSeat[9] == true)
   {
       MessageBox.Show("You chose Economy Class", "Economy Class", 
                       MessageBoxButtons.OK);
   }
   else
   {
       DialogResult g = MessageBox.Show("Unfortunately, Economy class is full. Next flight in 3 hours",  
              "Oh No", MessageBoxButtons.OKCancel);
       if (g == DialogResult.OK)
       {
            TxtClassChoice.Clear();
       }
       else
       {
            Close();
       }
   }
}

【问题讨论】:

  • 您可能只想在 for 循环完成后检查assignedSeat[9],或者?
  • 你是怎么得到座位号的?你通常会做这样的事情(不需要循环)if (assignedSeat[seatNumber-1]) { SomeSmething}记住数组是基于0的

标签: c# arrays boolean boolean-expression


【解决方案1】:

我认为这里的混乱是 for 循环。

for (int i = 5; i < 9; i++)

9 - 5 = 4。

您在这里只检查 4 个座位。座位 6 至 9。

if (assignedSeat[9] == true) 将始终为假。这是因为 i &lt; 9 条件。

知道这一点,assignedSeat[i] = true; 行将永远不会运行 assignedSeat[9] = true;

布尔值的默认值为 false。

如果您想查看座位 6 到 10,请将 i &lt; 9 更改为 i &lt; 10

for (int i = 5; i < 10; i++)

我不知道如何检查特定索引是否已被 成真了。

if (assignedSeat[9] == true) 完全没问题。它可以缩短为if (assignedSeat[9]),但这只是偏好。

【讨论】:

    【解决方案2】:

    您的代码中至少有两个错误。首先,您需要遍历所有座位以一一检查它们是否空闲。这意味着包括从 5 到 9 的循环(索引 5 用于座位 6,因为数组是从零开始的)。第二个错误是每个席位的分配为真。当然,这应该只在您找到空闲座位时才进行一次,而不是每次循环。

    但是,在修复这些错误之后,您还可以做更多事情。尝试将检查空闲座位的逻辑与显示消息的逻辑分开。

    // Cycle from 5 to 9 (seats 6-10)
    int seatNum = 5;
    while(seatNum < 10)
    {
        // If the seat is free stop the cycle
        if(!assignedSeat[seatNum])
            break;
    
        seatNum++;
    }
    
    // If we exit the loop after reaching the last seat then we don't have free seats
    if(i == 10)
        MessageBox.Show("Unfortunately, Economy class is full.....");
    else
    {
        assignedSeat[seatNum] = true;
        MessageBox("You chose Economy Class, assigned seat is " + seatNum+1);
    }
    

    【讨论】:

      猜你喜欢
      • 2021-03-12
      • 2013-09-09
      • 2021-11-07
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2022-07-31
      • 1970-01-01
      相关资源
      最近更新 更多