积极或消极的 - 如果声明

问题描述:

好吧,所以在书中即时阅读它告诉我写一个程序,要求用户两个数字相乘,然后将打印出来的结果是否应该是积极的还是消极的。积极或消极的 - 如果声明

的规则是,我不能把两个数字和繁殖它们,然后检查如果结果大于或小于零。相反,如果两个数字具有相同的符号(包括正数或负数),则结果为正数。如果他们有不同的迹象,结果是消极的。 (我还加了int 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"); 
+0

测试与5代码为第一和0的第二 – CodingYoshi

+0

诺诺,即时通过检查第一号和第二,想知道如果我的办法就是像书本所以基本上它的发现正负号码,看看它是否 - 或+ ,因为我不应该检查结果。 所以我不能检查,如果我把2和-5,答案是-3,我的代码不能被检查-3检查,如果其负面 这样的IM,如果我的代码在顶部由符号,而不是checkijng疑惑最终结果 –

+1

本书中的代码非常糟糕 - 使用'bool firstNumberPositive = first> 0;'会更清晰。任何时候,如果你看到'if'分支分配(或返回)true和false而不做其他任何事情,它可以改进。 –

该解决方案在本书中介绍不考虑输入为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"); 
}