gpt4 book ai didi

c# - 检查字符串是否不等于某物

转载 作者:行者123 更新时间:2023-11-30 18:58:31 25 4
gpt4 key购买 nike

这是我的代码:

using System;

namespace FirstProgram
{
class MainClass
{
public static void Main(string[] args)
{
Console.WriteLine ("What is your first name?");
String Name = Console.ReadLine ();
Console.WriteLine ("\nHi " + Name + "! Now tell me are you a boy or girl?");
String Sex = Console.ReadLine ();

if (!Sex.Equals ("boy") || !Sex.Equals ("girl")) {
Console.WriteLine ("\nERROR: You were supposed to type 'boy' or 'girl'\nPress any key to exit...");
Console.ReadKey ();
System.Environment.Exit (1);
}

Console.WriteLine ("\nOk so your name is " + Name + " and your are a " + Sex + "... Please tell me your age :)");
int Age = Convert.ToInt32 (Console.ReadLine ());
Console.WriteLine ("\nYou are " + Age + " years old!");
Console.ReadKey ();
}
}
}

我只是想知道为什么即使我输入“男孩”或“女孩”程序也会退出,以及如何解决这个问题。

最佳答案

简单的逻辑:

Sex != "boy" || Sex != "girl"

永远是真的。

你需要使用

Sex != "boy" && Sex != "girl"

相反。

一些额外的注意事项:

  • C# 支持运算符重载并且很常用,因此您可以对字符串使用 ==!= 就可以了。
  • 不要使用Environment.Exit,只需return。如果需要返回错误码,将Main的签名改为int Main()return 1;。但请注意,在 Windows 上,应用程序可能会假设返回非成功代码的应用程序以某种方式失败并报告它 - 例如Total Commander 会弹出一条消息。
  • 不要使用\n。要么使用 Environment.NewLine,要么坚持使用 Console.WriteLine 作为结尾。
  • 考虑使用 string.Format 将复杂的字符串组合在一起:string.Format("Your name is {0} and your age is {1}.", Name, Age)。如果您使用的是 C# 6+,字符串插值会更好:$("Your name is {Name} and your age is {Age}.")`.
  • 不区分大小写的比较可能对您的情况更有用 - Sex.Equals("boy", StringComparison.CurrentCultureIgnoreCase)

关于c# - 检查字符串是否不等于某物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36795078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com