正面还是负面 - 如果声明

时间:2016-11-27 07:41:20

标签: c# console

好吧,所以在书中我正在阅读它告诉我写一个程序,询问用户两个乘法数字,然后它将打印出结果是正面还是负面。

规则是我不能取两个数字并乘以它们,然后检查结果是否大于或小于零。相反,如果两个数字具有相同的符号(均为正数或均为负数),则结果为正。如果他们有不同的迹象,结果是否定的。

我这样做了(我也添加了anresult = first * second;< - 我需要吗?)因为如果我删除它仍然有效,但是这本书想要它在乘法中。所以我不确定这段代码是否正在做任何事情

            Console.WriteLine("Enter First Nuumber: ");
        string firstAsString = Console.ReadLine();
        int first = Convert.ToInt32(firstAsString);


        Console.WriteLine("Enter Second Nuumber: ");
        string secondAsString = Console.ReadLine();
        int second = Convert.ToInt32(secondAsString);



        int anresult = first * second;

        if (first >= 0 && second > 0 || first < 0 && second < 0)
            Console.WriteLine("Your number will be Positive");
        else
            Console.WriteLine("Your number will be negative");


        Console.ReadLine();

但这本书就是这样做的

            Console.WriteLine("Enter First Nuumber: ");
        string firstAsString = Console.ReadLine();
        int first = Convert.ToInt32(firstAsString);


        Console.WriteLine("Enter Second Nuumber: ");
        string secondAsString = Console.ReadLine();
        int second = Convert.ToInt32(secondAsString);


        bool firsNumberPositive;
        bool secondNumberPositive;


        if (first > 0) {
            firsNumberPositive = true;
        }
        else
        {
            firsNumberPositive = false;
        }

        if (second > 0)
        {
            secondNumberPositive = true;
        }
        else
        {
            secondNumberPositive = false;
        }

        if (firsNumberPositive && secondNumberPositive || !firsNumberPositive && !secondNumberPositive)
            Console.WriteLine("Answer Is Positive");
        else
            if (!firsNumberPositive && secondNumberPositive || firsNumberPositive && !secondNumberPositive) 
        Console.WriteLine("Answer Is Negative");

        Console.ReadLine(); 

不是我的方式和书籍一样吗?因为这本书显示了

  if (first > 0) {
                firsNumberPositive = true;
            }

使用数字就像我显示正面和负面

继承人,同样的事情?..

 if (first >= 0 && second > 0 || first < 0 && second < 0)
                Console.WriteLine("Your number will be Positive");
            else
                Console.WriteLine("Your number will be negative");

2 个答案:

答案 0 :(得分:1)

本书中提出的解决方案并未考虑输入为0的条件,因此它的行为与您编写的代码不同。

答案 1 :(得分:0)

您的解决方案输出的结果与书中的结果不同。只需使用firstsecond 0进行尝试。您的代码会说结果是否定的,而本书的解决方案会说它是正面的。

在我看来,0既不是正数也不是负数,应该分开处理。所以这是我的解决方案:

if (first == 0 || second == 0) {
    Console.WriteLine("The result is 0");
} else if ((first > 0) != (second > 0)) { // here, it might look a little weird but I'm just checking whether the signs are the same.
    Console.WriteLine("The result is negative");
} else {
    Console.WriteLine("The result is positive");
}