如何向循环添加条件

本文关键字:添加 条件 循环 | 更新日期: 2023-09-27 17:53:33

我想检查数组中的值,如果它存在,则返回值,否则返回消息并从数组中读取另一个值。添加

 else
    {
      MessageBox.Show("This Item ID Does Not Exist");
    }

但是问题是当值不在数组中时,它想要显示消息1258038次。我如何检查值(输入),如果它存在,我可以继续,如果它不存在,它返回并读取另一个值(输入可以是几个值,必须一个接一个地读取)


 for (int cun = 0; cun < ItemIdNumber.Length; cun++)
    {
      int Item_Id = Convert.ToInt32(ItemIdNumber[cun]);
      for (int yyu = 0; yyu <= 1258038; yyu++)
      {
         int weer = c[yyu];
         if (weer == Item_Id)
         {
           itemseq = yyu;
         }
         else
         {
           MessageBox.Show("This Item ID Does Not Exist");
         }
      }
      float[] i_ff = b[itemseq];
      for (int ii = 0; ii < i_ff.Length; ii++)
      {
    .......

如何向循环添加条件

使用break提前退出循环。您还需要稍微改变一下逻辑,这样就不会在每次迭代中都显示一条消息。这只是一种可能:

int? itemseq = null;
for (...)  // outer loop
{
    ...
    for (...)  // inner loop
    {
        if (weer == Item_Id)
        {
            itemseq = yyu;
            break;
        }
    }
    if (!itemseq.HasValue)
        MessageBox.Show("This Item ID Does Not Exist");
    ...
}

我认为只要稍微思考一下,你就可以让这篇文章更容易读懂。

  1. 您有两个集合要搜索- ItemIdNumberc
  2. 您正在寻找ItemIdNumber中的第一个值,该值与c的第一个1258038值中的项相匹配。

可能是这样的LINQ语句,虽然我不确定你的集合是什么类型的。我是徒手写的,所以它可能不能按原样编译。不过应该能给你点灵感。

var id = (from id in ItemIdNumber
          join cid in c.Take(1258038) on Convert.ToInt32(id) equals cid
          select cid).FirstOrDefault();
if (!id.HasValue)
    MessageBox.Show("This Item ID Does Not Exist");
for (int cun = 0; cun < ItemIdNumber.Length; cun++) {
    ...
    boolean found = false;    
    for (int yyu = 0; yyu <= 1258038; yyu++) {
        int weer = c[yyu];
        if (weer == Item_Id)
        {
            itemseq = yyu;
            found = true;
            break;
        }
    }
    if(!found) {
        MessageBox.Show("This Item ID Does Not Exist");
    }
    ...
}