gpt4 book ai didi

C# - 使用 if/else 语句查找最多 3 个数字

转载 作者:太空宇宙 更新时间:2023-11-03 17:49:12 25 4
gpt4 key购买 nike

我对 C# 完全陌生 - 只是尝试一些简单的东西。
我想使用 if/else 语句找到三个数字的最大值。我试着写这个方法:

public int Maximum(int num1, int num2, int num3)
{
if (num2 < num1 > num3)
{
return num1;
}

else if (num1 < num2 > num3)
{
return num2;
}

else if (num1 < num3 > num2)
{
return num3;
}
}

但我有点困惑。

Q1 - 通过说“int Maximum”,我是否仍然需要将每个参数声明为一个 int (或反过来相同)?还是一切都需要声明其数据类型?

Q2 - 一直告诉我“运算符'>'不能应用于 bool 和 int 类型的操作数”?我很困惑我应该在这里做什么。我做错了什么还是有其他选择?

谢谢你的帮助。

最佳答案

关于第一季度

C# 是 strongly typed语。这意味着您必须明确告诉编译器您的参数、变量、成员甚至方法返回值的类型。

这类似于其他强类型语言,例如 Java 或 C++。

附:最新的 C# 关键字(例如 vardynamic )试图将 C# 从强类型环境转移到混合环境。

关于第二季度
num < num2 > num3不是有效的条件表达式。
num < num2产生 bool , 所以下面的表达式 num < num2 > num3相当于bool > num3 ,这是无效的,因为您不能像这样比较 bool 和 int 。

您正在寻找的是 Conditional AND (&&)运算符(operator):

if (num < num2 && num2 > num3)
{
return num2;
}

或者,您也可以使用嵌套 if实现相同行为的语句:
if (num < num2)
{
if (num2 > num3)
{
return num2;
}
}

关于你的代码

您提供的代码有另一个问题。

如果三个条件都不满足会怎样?该方法会返回什么?

当然,您知道这三个条件不可能永远满足,但编译器不知道这一点。

您必须返回一个虚拟值,或者删除您最后的 else if :
public int Maximum(int num1, int num2, int num3)
{
if (num2 < num1 && num1 > num3)
{
return num1;
}

else if (num1 < num2 && num2 > num3)
{
return num2;
}

// If we reached this point, we know that num3 is the biggest of them all
else
{
return num3;
}
}

关于C# - 使用 if/else 语句查找最多 3 个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40061828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com