我正在做一些基本的C#练习来学习C#。网站也提供了问题的解决方案,但我无法理解代码。
问题: 编写一个C#程序来检查整数是否在100或200之间。
示例输出: 输入一个整数 25 假
解决方案:
public class Exercise22
{
static void Main(string[] args)
{
Console.WriteLine("\nInput an integer:");
int x = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(result(x));
}
public static bool result(int n)
{
//Can't understand the code below -
//why is the "<=10" and "return false" used
if (Math.Abs(n - 100) <= 10 || Math.Abs(n - 200) <= 10)
return true;
return false;
}
}
答案 0 :(得分:5)
Math.Abs()
为您提供参数的绝对值。
如果n
介于90和110之间(20左右),则n-100
介于-10
和10
之间,因此Math.Abs()
将返回0
和10
之间的值。
200也是如此。
然而,您可以将其简化为:
return Math.Abs(n-100) <= 10 || Math.Abs(n-200) <= 10;
因此,如果n
位于其中一个范围内,则返回true
并且函数结束。
否则,该功能会跳过return true
并继续return false
。
答案 1 :(得分:1)
if
显然是一个条件,以下语句仅在条件通过时执行。在您的情况下,执行将通过执行return true
。
我认为你认为你需要一个else
来表明条件不时会发生什么。通常这是对的。但是,在这种特殊情况下,当return false
通过时无法到达if
- 语句,就像在这种情况下(如前所述),该方法将终止。
所以你也可以写这个,完全相同:
if (Math.Abs(n - 100) <= 10 || Math.Abs(n - 200) <= 10)
return true;
else
return false;
总而言之,除了评估return false
的条件外,没有其他方式执行false
- 语句。