c#初学者问题

时间:2010-04-08 17:18:27

标签: c#

我正在尝试学习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);
        }
    }
}

10 个答案:

答案 0 :(得分:24)

if(myInt = 10)

将值10赋给myInt,而不是检查是否相等。它应该成为:

if(myInt == 10)

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

答案 1 :(得分:12)

此:

if (myInt = 10)

需要这样:

if (myInt == 10)

或者也可能是这样:

if(myInt.Equals(10))

我知道这可能只是一个错字,但我想我还是会包含这个链接:

http://msdn.microsoft.com/en-us/library/53k8ybth.aspx

这是指向Equals功能的链接:

http://msdn.microsoft.com/en-us/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/en-us/library/system.int32.tryparse.aspx

答案 2 :(得分:7)

而不是if (myInt = 10),您需要使用if (myInt == 10)

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

答案 3 :(得分:5)

你的if语句是为myInt分配10而不是测试是否相等。

这样做:

if(myInt == 10)

答案 4 :(得分:4)

更改

if (myInt = 10)

if (myInt == 10)

答案 5 :(得分:3)

Offhand,您正在使用赋值运算符,而不是相等运算符。 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);

答案 6 :(得分:2)

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

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

答案 7 :(得分:1)

我认为有三个问题:

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

    Console.WriteLine(“你的号码是10”,myInt);

    将始终显示10。

  3. 您将无法看到结果。

  4. 尝试以下方法:

    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();
        }
    }
    }
    

答案 8 :(得分:1)

您可以尝试使用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);
            }
        }

    }

答案 9 :(得分:0)

除了使用==而不是=之外,将值放在变量之前也是一种很好的做法,如

if(10 == myInt)

因此,当你只是意外地输入1个等号时,编译器会捕获。