有没有办法知道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语句中的值在外部是否相同,然后知道传递了哪些值时,我是否应该运行一个循环?
如果我理解这个问题,我不是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;
}
}