如何向循环添加条件
本文关键字:添加 条件 循环 | 更新日期: 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");
...
}
我认为只要稍微思考一下,你就可以让这篇文章更容易读懂。
- 您有两个集合要搜索-
ItemIdNumber
和c
。 - 您正在寻找
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");
}
...
}