在我的程序中,我认为我的count变量没有保持该值。我该怎么办才能举办?这是我的代码。
static void Main(string[] args)
{
double a;
double count = 0;
Console.WriteLine("Enter the Numbers : ");
for (double i = 1; i <= 10; i++)
{
a = Convert.ToDouble(Console.ReadLine());
if (a % 2 != 0 || a % 3 != 0 || a % 5 != 0)
{
count = count++;
}
//else
//{
// }
Console.ReadLine();
}
Console.WriteLine("The Numbers That Are divisible by 2,3,5 are : " + count);
Console.ReadLine();
}
答案 0 :(得分:9)
你的错误是count = count++;
行。这不会使count
增加一个。您只需使用count++;
。
表达式count++
将count
的值增加1,然后将表达式的值作为count的原始值返回。在这种情况下,count++
的增量在分配之前发生,因此count
首先增加1,但是您将count++
的值(即原始值)分配给{ {1}}再次,所以它根本没有增加。
答案 1 :(得分:7)
您的计划会列出不能被任何这些数字整除的数字。如果您想要计算不能被所有整除的数字,那么您需要使用if (a % 2 != 0 && a % 3 != 0 && a % 5 != 0)
代替。如果可能的话,我还建议使用整数而不是双精度。
最后,您的print语句表示 可以被2,3,5整除的数字,但count是不可被这些数字整除的数字的数量。< / p>
编辑:您每次测试时都输入10个数字吗?如果你给出一个空白的输入,我不确定你会得到什么样的结果。
答案 2 :(得分:2)
不要添加到jk和David Kanarek在他们的答案中所说的内容或其他人对这些答案的评论,正如jk指出的那样使用count + 1而不是count ++,还有一些注释:
1)你在循环中使用console.Readline()两次,所以用户将输入20个输入,但只会读取10个..
2)如果您使用||,只需在您的if子句中额外考虑Anton的评论你试图捕捉任何条件是真的,换句话说:
// a=2
if (a % 2 != 0 || a % 3 != 0 || a % 5 != 0) // False || True || True = True
{
count = count + 1 ;// count will increase
}
另一方面,使用&amp;&amp; :
// a=2
if (a % 2 != 0 && a % 3 != 0 && a % 5 != 0) // False && True && True = false
{
count = count + 1 ; //count will not increase
}