2013-04-23 112 views
-2

你们可以指出这段代码有什么问题吗?C#条件语句

我想要的是,如果有人以地球的形式回答,让你说得对,如果不是的话,那你就错了。

Console.WriteLine("What planet do we live on"); 

string name = Console.ReadLine(); 

if (name =earth) 
{ 
    Console.WriteLine("Yes, you're right"); 
} 
else 
{ 
    Console.WriteLine("You're wrong"); 
} 
Console.ReadLine(); 
+4

那么问题是什么? – 2013-04-23 06:51:57

+0

你想从这个怎么知道? – Virus 2013-04-23 06:53:21

+1

我们试图猜测你确切的问题是什么。但请在您的问题中包含*错误详情*。 – 2013-04-23 06:58:23

回答

1

您的状况不正确。它应该是

if (name == "earth"){ } 

值也应引用以避免编译器错误。

+0

谢谢你的队友。我没有对字符串使用双引号。 – scylla 2013-04-23 07:04:09

+0

@scylla - 你也使用了一个'='(assignement)而不是'=='(比较)。 – Corak 2013-04-23 07:12:04

+0

不客气':D'如果你有多种条件,'IF'语句或'Switch'可能比三元运算符更有效,就像Hossein所示。 – 2013-04-23 07:13:32

4

请注意,在下面的代码^标志:

Console.WriteLine("What planet do we live on"); 

string name = Console.ReadLine(); 

Console.WriteLine(name == "earth" ? "Yes, you're right" : "You are wrong"); 
         ^^^ ^
Console.ReadLine(); 
1
if (name == "earh") 
{ 
    Console.WriteLine("Yes, you're right"); 
} 
else 
{ 
    Console.WriteLine("You're wrong"); 
} 

您使用=代替==

你应该比较"earth"String),而不是earh

1

==平等对比运营商,而=分配在C#。因此,你必须使用==为别人指出:

if(planet == earth) { 
} 

使用=将分配给earthplanet返回earth,而不是比较并返回一个bool

1
if (name == "earth") 
{ 
} 

当你检查条件时,==应该在if中。

如果有单个=那么它只是简单地对这个值进行赋值。