繁体   English   中英

C#初学者问题

[英]c# beginner problem

我正在尝试学习C#,以下代码有问题:

using System;

class IfSelect
{
    public static void Main()
    {
        string myInput;
        int myInt;
        Console.Write("Please enter a number: ");
        myInput = Console.ReadLine();
        myInt = Int32.Parse(myInput);

        if (myInt = 10)
        {
            Console.WriteLine("Your number is 10.", myInt);
        }
    }
}
if(myInt = 10)

将10的值分配给myInt而不是检查是否相等。 它应该变成:

if(myInt == 10)

这是测试相等性的正确语法。

这个:

if (myInt = 10)

需要这样的:

if (myInt == 10)

或者也可能是这样:

if(myInt.Equals(10))

我知道这可能只是拼写错误,但我想无论如何我都会包含链接:

http://msdn.microsoft.com/zh-CN/library/53k8ybth.aspx

这是Equals函数的链接:

http://msdn.microsoft.com/zh-CN/library/ms173147(VS.80).aspx

其实

这: myInt = Int32.Parse(myInput); 也应该是这样的

int myInt;

if(Int32.TryParse(myInput, out myInt))
{
  rest of code.
}
else
{
  Console.WriteLine("You didn't provide a number");
}

以防万一提供的输入不是数字。

http://msdn.microsoft.com/zh-CN/library/system.int32.tryparse.aspx

代替if (myInt = 10)您需要使用if (myInt == 10)

第一个是赋值运算符,第二个是比较运算符。

您的if语句将10分配给myInt而不是进行相等性测试。

做这个:

if(myInt == 10)

更改

if (myInt = 10)

if (myInt == 10)

暂时,您使用的是赋值运算符,而不是相等运算符。 if (myInt = 10)应该应该是if (myInt == 10)

另外,在

Console.WriteLine("Your number is 10.", myInt);

myInt参数毫无意义。 应该使用

Console.WriteLine("Your number is 10.");

要么

Console.WriteLine("Your number is {0}.", myInt);
  if (myInt = 10)
  {
   Console.WriteLine("Your number is 10.", myInt);
  } 

应该将=更改为==以检查是否相等

您可以尝试使用StreamReader通过控制台捕获输入的方法。

其次,您需要==(表示“等于”)而不是(=),这是赋值运算符,这是您首次开始编程时的常见错误。

但是,这将不起作用,因为我的代码将出现错误,但这仅举一个示例说明您的错误所在。

class IfSelect
{
    public static void Main()
    {
            string myInput;
            int myInt;

            StreamReader reader = new StreamReader();

            Console.Write("Please enter a number: ");
            myInput = reader.ReadLine();
            myInt = Int32.Parse(myInput);

            if (myInt == 10)
            {
                Console.WriteLine("Your number is 10.", myInt);
            }
        }

    }

我认为存在三个问题:

  1. 它不会编译。 (myInt = 10)不会分配给myInt-它只会编译。
  2. 如果有的话

    Console.WriteLine(“您的数字是10。”,myInt);

    始终显示10。

  3. 您将看不到结果。

请尝试以下操作:

class IfSelect
{
public static void Main()
{
    string myInput;
    int myInt;
    Console.Write("Please enter a number: ");
    myInput = Console.ReadLine();
    myInt = Int32.Parse(myInput);

    if (myInt == 10)
    {
        Console.WriteLine(string.Format("Your number is {0}.  Press any key.", myInt));
        Console.ReadLine();
    }
}
}

除了使用==代替=外,将值放在变量之前也是一种好习惯,例如

if(10 == myInt)

因此,当您偶然仅放1个等号时,编译器将捕获。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM