c#中的参数功能?

时间:2018-04-03 04:03:18

标签: c# visual-studio

我正在尝试创建一个名为“compNumbers”的函数,该函数需要2个双精度数。如果两个数字相等,它们应该返回0,如果第一个参数大于第二个,它应该返回1,如果第二个参数大于第一个,它应该返回-1

这是我对这个问题的尝试:

static double compNumbers(double x, double y)
{
    if (x == y)
    {
        return 0;
    }
    else if (x > y)
    {
        return 1;
    }
    else if (y > x)
    {
        return -1;
    }
}
static void Main(string[] args)
{
    double a = 0, b = 0;
    compNumbers(a,b);
    Console.ReadKey();
}

我遇到的错误是:

描述说“Program.compNumbers(double,double):并非所有代码路径都返回一个值”。

另外,由于我是编程新手,我会在哪里放置'输入,处理,输出'代码?我对从哪里开始感到困惑......

感谢您的帮助!

4 个答案:

答案 0 :(得分:2)

例如,如果xy的值为double.NaN,则您的所有条件都将返回false,因此您将到达函数的末尾并需要返回somethig:

static double compNumbers(double x, double y)
{
    if (x == y)
    {
        return 0;
    }
    else if (x > y)
    {
        return 1;
    }
    else if (y > x)
    {
        return -1;
    }
    return double.NaN
}

有关double.NaN值的更多信息:https://msdn.microsoft.com/en-us/library/system.double.nan(v=vs.110).aspx

要比较双值,请使用特殊方法CompareTo

x.CompareTo(y);

答案 1 :(得分:2)

static double compNumbers(double x, double y)
{
    return x.CompareTo(y);
}

答案 2 :(得分:2)

您遇到的问题是,如果其他所有内容都为假,则无法返回。

由于“x不等于y”且“x不大于y”的唯一其他选项是“y必须大于x”,我将删除最后的其他如果并保存几行代码只返回-1。

static double compNumbers(double x, double y)
{
    if (x == y)
    {
        return 0;
    }
    else if (x > y)
    {
        return 1;
    }

    return -1;
}

答案 3 :(得分:0)

首先,在这种情况下,您不必将方法声明为import React, { Component } from "react"; import ReactDOM from "react-dom"; import Pagination from "react-js-pagination"; require("bootstrap/less/bootstrap.less"); class App extends Component { constructor(props) { super(props); this.state = { activePage: 1, itemPerPage: 3, productList: [], duplicateProductList: [] }; } componentDidMount() { let d = ''; $.get("YOUR API", function (data) { d = data; this.setState({ projectList: d, duplicateProductList: d }); }.bind(this)); } handlePageChange(pageNumber) { this.setState({ activePage: pageNumber }); } render() { const { projectList, activePage, itemPerPage } = this.state; const indexOfLastTodo = activePage * itemPerPage; const indexOfFirstTodo = indexOfLastTodo - itemPerPage; const renderedProjects = projectList.slice(indexOfFirstTodo, indexOfLastTodo); return ( <div> <div> YOUR LIST </div> <Pagination activePage={this.state.activePage} itemsCountPerPage={this.state.itemPerPage} totalItemsCount={this.state.duplicateProductList.length} pageRangeDisplayed={5} onChange={this.handlePageChange.bind(this)} /> </div> ); } } ReactDOM.render(<App />, document.getElementById("root")); ,因为您 只想要一个double作为回报!!!

其次,当所有条件都是假的时候你必须返回一些东西!!

int

这可能会有所帮助!!