我的 if 语句似乎不被接受

本文关键字:if 语句 我的 | 更新日期: 2023-09-27 17:54:05

if(string s; s = Console.ReadLine(); s == "ja" || "Ja")

我从那一行得到的所有错误的屏幕截图我一个都不明白有人可以解释一下吗

我的 if 语句似乎不被接受

您不能在语句if声明变量,这也是无效的: s == "ja" || "Ja"您需要像这样分隔每个条件

string s = Console.ReadLine(); 
if(s == "ja" || s == "Ja")

或者您可以只使用:

if(s.ToLower() == "ja")
string s; 
s = Console.ReadLine();
if(s == "ja" || s== "Ja")
{    
}

这不是有效的 C# 语法。 在语句if内部应该有一个生成布尔值的评估。 不能在里面声明新变量,s == "ja" || "Ja"也没有任何意义。

C# 不允许这种事情发生。尝试如下操作:

string s = Console.ReadLine() ;
bool isEndOfFile = s == null ; // Console.ReadLine() returns null at end-of-file
if ( isEndOfFile ) throw new Exception( "That was unexpected!" ) ;
bool isYes = !isEndOfFile && s.Trim().Equals( "Ja" , StringComparison.CurrentCultureIgnoreCase ) ;
if ( isYes )
{
  HandleYesInput() ;
}

一般来说,保持简单。有意编程将帮助您:以声明性方式工作,使用小的离散方法和局部变量作为您正在测试的每个条件的标志来表达您的意图,而不是试图在一个复杂的表达式中完成所有操作。你可以做这样的事情:

string s = null ;
if ( (s=Console.ReadLine()) && s != null && s.Trim().Equals("Ja",StringComparison.CurrentCulture.IgnoreCase) )
{
  ...
}

您可以以牺牲可读性、可追溯性和可调试性为代价获得一点简洁性。当您的代码无法按预期工作时,您认为哪个版本更容易理解或诊断和修复?如果分配解决问题任务的人不理解代码或它试图完成的任务并且必须快速跟上进度,那么这就会增加三倍。

那个人很可能就是你,看看你5年前写的代码。