使用布尔值的问题?
Questions using booleans?
我认为我要完成的任务很明显,但我是编码新手也很明显。这是我的代码,它在到达 "Would you like to run a program?" 之前工作正常,在这种情况下,它总是像用户输入的那样运行 "yes"。我是完全错误地解决这个问题还是只是写错了?
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string mystring = "What is your name?";
Console.WriteLine(mystring);
string UserInput = Console.ReadLine();
string Name = UserInput;
Console.WriteLine("Hello " + Name);
Console.WriteLine("Would you like to run a program?");
bool UserIput2;
Console.ReadLine();
bool Yes = true;
bool No = false;
if (UserIput2 = (true)) Console.WriteLine("What would you like to run? (Type help for a list of valid programs)");
else if (UserIput2 = (false)) Console.WriteLine("Goodbye");
Console.ReadLine();
Console.ReadLine();
}
}
}
试试这个,我在这里为 UserIput2 分配输入并将其与 "yes" 或 "no" 进行比较。你可以相应地改变它
string mystring = "What is your name?";
Console.WriteLine(mystring);
string UserInput = Console.ReadLine();
string Name = UserInput;
Console.WriteLine("Hello " + Name);
Console.WriteLine("Would you like to run a program?");
string UserIput2= Console.ReadLine();
if (UserIput2.ToLower() == "yes") Console.WriteLine("What would you like to run? (Type help for a list of valid programs)");
else if (UserIput2.ToLower() == "no") Console.WriteLine("Goodbye");
Console.ReadLine();
Console.ReadLine();
boolean
类型是二进制的。想象一下,这种类型就像电灯开关一样工作。它只能有 2 种状态 - 打开 true
和关闭 false
。仅将此数据类型用于在两种可能状态之间切换。
示例 C#:
bool result = (2 > 1); //Will result in true because 2 is great as 1
bool result = (2 < 1); //Will result in false because 2 is not less as 1
在您当前的代码中,您 丢弃 用户输入:
Console.WriteLine("Would you like to run a program?");
bool UserIput2;
Console.ReadLine(); // <- input is discarded
相反,您应该分配它给UserIput2
:
Console.WriteLine("Would you like to run a program?");
// we assume that answer is positive (UserIput2 == true)
// if and only if user put "yes" in any register ("YES", "Yes", "yes"...)
bool UserIput2 = String.Equals(
Console.ReadLine(),
"yes",
StringComparison.OrdinalIgnoreCase);
if
的另一个问题:=
是赋值,而不是比较:
if (UserIput2 = (true)) Console.WriteLine(...);
表示将true
赋值给UserIput2
,然后检查。正确的实现是
if (UserIput2)
Console.WriteLine("What would you like to run? (Type help for a list of valid programs)");
else
Console.WriteLine("Goodbye");
我认为我要完成的任务很明显,但我是编码新手也很明显。这是我的代码,它在到达 "Would you like to run a program?" 之前工作正常,在这种情况下,它总是像用户输入的那样运行 "yes"。我是完全错误地解决这个问题还是只是写错了?
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string mystring = "What is your name?";
Console.WriteLine(mystring);
string UserInput = Console.ReadLine();
string Name = UserInput;
Console.WriteLine("Hello " + Name);
Console.WriteLine("Would you like to run a program?");
bool UserIput2;
Console.ReadLine();
bool Yes = true;
bool No = false;
if (UserIput2 = (true)) Console.WriteLine("What would you like to run? (Type help for a list of valid programs)");
else if (UserIput2 = (false)) Console.WriteLine("Goodbye");
Console.ReadLine();
Console.ReadLine();
}
}
}
试试这个,我在这里为 UserIput2 分配输入并将其与 "yes" 或 "no" 进行比较。你可以相应地改变它
string mystring = "What is your name?";
Console.WriteLine(mystring);
string UserInput = Console.ReadLine();
string Name = UserInput;
Console.WriteLine("Hello " + Name);
Console.WriteLine("Would you like to run a program?");
string UserIput2= Console.ReadLine();
if (UserIput2.ToLower() == "yes") Console.WriteLine("What would you like to run? (Type help for a list of valid programs)");
else if (UserIput2.ToLower() == "no") Console.WriteLine("Goodbye");
Console.ReadLine();
Console.ReadLine();
boolean
类型是二进制的。想象一下,这种类型就像电灯开关一样工作。它只能有 2 种状态 - 打开 true
和关闭 false
。仅将此数据类型用于在两种可能状态之间切换。
示例 C#:
bool result = (2 > 1); //Will result in true because 2 is great as 1
bool result = (2 < 1); //Will result in false because 2 is not less as 1
在您当前的代码中,您 丢弃 用户输入:
Console.WriteLine("Would you like to run a program?");
bool UserIput2;
Console.ReadLine(); // <- input is discarded
相反,您应该分配它给UserIput2
:
Console.WriteLine("Would you like to run a program?");
// we assume that answer is positive (UserIput2 == true)
// if and only if user put "yes" in any register ("YES", "Yes", "yes"...)
bool UserIput2 = String.Equals(
Console.ReadLine(),
"yes",
StringComparison.OrdinalIgnoreCase);
if
的另一个问题:=
是赋值,而不是比较:
if (UserIput2 = (true)) Console.WriteLine(...);
表示将true
赋值给UserIput2
,然后检查。正确的实现是
if (UserIput2)
Console.WriteLine("What would you like to run? (Type help for a list of valid programs)");
else
Console.WriteLine("Goodbye");