有没有办法知道if语句中传递了什么

本文关键字:什么 语句 if 有没有 | 更新日期: 2023-09-27 18:20:32

我的问题是,我现在需要知道哪些语句通过了If语句。代码如下。

int[] Array = {value1,value2,value3}
foreach {int Value in Array)
{
if (Value < 4)
{
    // Here i need to know what values passed through that were less that 4, like    
    // which one, value 1, value 2, and/or value 3
}

那么问题有解决方案吗?我对编程有点陌生。我的问题是,我不需要else语句,我需要知道值是1、2还是3。确切地说,哪些小于4。编辑:修正了一些错误,匆忙中,忘记把标志放在另一边。当它们小于4时,我需要现在通过哪些值。我可能会收回。因为我搞砸了。我现在真的不在乎哪一个更大,或者其他的说法,我跳过了那部分。伊迪丝2:我也想出了一个解决方案,但我不知道它是否好。当我在if语句中存储值,生成另一个if语句,比较if语句中的值在外部是否相同,然后知道传递了哪些值时,我是否应该运行一个循环?

有没有办法知道if语句中传递了什么

如果我理解这个问题,我不是100%肯定,但你似乎可以使用else语句

if (Value > 4)
{
 // Do your stuff for elements greater than 4
}
else
{
 // Do your stuff for elements greater lower or equal than 4
}

使用for而不是foreach怎么样,因为你得到了数组成员的索引,你就会知道哪个通过了

int[] array = {value1, value2, value3}
for (int index = 0; index < array.Count(); index++)
{
    if (array[index] < 4)
    {
        // do sth with index
    }
}
int Array[] = {value1,value2,value3}
foreach {int Value in Array)
{
if (Value > 4)
{
    // Here i need to know what elements passed through that were less that 4
}else if(Value < 4){
  //values < 4 will execute this code
}

我将提出一些一般性建议,希望这些建议会有所帮助。首先,你的条件是if (Value > 4),所以你不会进入你建议找出哪些元素小于4的代码块。相反,你需要一个else。所以有一种方法;

int Array[] = {value1,value2,value3}
List<int> lessThanFour = new List<int>();
foreach {int Value in Array)
{
    if (Value < 4)
    {
        lessThanFour.Add(Value);
        Console.WriteLine(Value);
    }
}

上面的代码将每个小于4的值放入一个列表中,以便以后可以访问它们。它还将它们打印到控制台。

另一种选择是使用LINQ;

var lessThanFour = Array.Where(x => x < 4);
foreach (int c in lessThanFor)
    Console.WriteLine(c);

上面的代码使用Where运算符创建一个新数组,其中原始数组中的所有int值都小于for。语句x => x < 4最好在迭代中考虑,因为其中x是当前元素。它的工作原理与foreach循环相同。当您执行该代码时,它基本上说,对于Array中的每个int x,如果x小于4,则将其添加到结果中。然后我用下面的foreach来打印结果。

我认为你的问题框架不好,但听起来你在寻找一个切换案例。

if (x < 4) {
   switch (x) {
       case 1: 
           Console.WriteLine("Case 1");
           break;
       case 2:
           Console.WriteLine("Case 2");
           break;
       case 3:
           Console.WriteLine("Case 3");
           break;
       default:
           Console.WriteLine("Default case");
           break;
    }
}