C#关于if语句的定义
if 语句根据布尔表达式的值选择要执行的语句。
if-statement:
if ( boolean-expression ) embedded-statement
if ( boolean-expression ) embedded-statement else embedded-statement
else 部分与语法允许的、词法上最相近的上一个 if 语句相关联。因而,下列形式的 if 语句
if (x) if (y) F(); else G();
相当于
if (x) {
if (y) {
F();
}
else {
G();
}
}
从C#语言定义文档中我们可以看到,if语句拥有两种书写格式,一种是不带else的一种是带else的
不带else的if语句
if ( boolean-expression ) embedded-statement
语句分三部分
- if
小写的if关键字 - ( boolean-expression )
圆括号:并在这对圆括号里放入一个bool类型的表达式(bool类型表达式:就是如果你对这个值求值的话,得到的值是bool类型) - embedded-statement
嵌入式语句:
注意事项不带elese的if语句这三个部分合起来是一条语句if ( boolean-expression ) embedded-statement,并且,在embedded-statement嵌入语句里,他可以嵌入一条语句(只能嵌入,嵌入语句不能嵌入其他语句,比如标签语句,或则声明语句),并且只能嵌入一条嵌入语句
示例如下:
if (true)Console.WriteLine("Hello");//圆括号后面只能嵌入一条嵌入语句.
如果需要在if里面实现复杂的逻辑怎么办呢?
这个时候就可以使用块语句{}包裹,用于实现if后面紧跟的逻辑
示例如下:
if (true) { Console.WriteLine("Hello"); Console.WriteLine("德玛西亚"); Console.WriteLine("艾欧尼亚"); }
带else的if语句
if ( boolean-expression ) embedded-statement else embedded-statement
首先任然是是if关键字,关键字后面跟着一对圆括号(括号里面跟着bool类型的表达式)后面接一条嵌入式语句,在这条嵌入式语句后面呢,需要跟上一个else而else关键字后面呢,需要再跟一条嵌入式语句
当if后面的括号里面的bool类型表达式得到的值是false时,便运行else后面的嵌入式语句,
示例如下
if (false) Console.WriteLine("这是true的结果");else Console.WriteLine("这是else的结果");
很显然输出为
因为块语句也是嵌入式语句所以可以在块语句里面放if语句来实现更加复杂的逻辑
示例如下
需求将一个班中80分以上的分一个阶段,60到79的分一个阶段,30到59的分一个阶段
int? scores = 80;
if (scores!=null&&scores<=100&&scores>=0)
{
Console.WriteLine("错误");
}
else
{
if (scores >= 80)
{
Console.WriteLine("优");
}
else
{
if (scores >= 60 && scores < 80)
{
Console.WriteLine("良");
}
else
{
if (scores >= 30 && scores < 60)
{
Console.WriteLine("中");
}
else
{
Console.WriteLine("差");
}
}
}
}
因为if语句被编译器当作一条语句,所以我们可以舍弃else后面的{}
int? scores = 80;
if (scores != null && scores <= 100 && scores >= 0)
{
Console.WriteLine("错误");
}
else if (scores >= 80)
{
Console.WriteLine("优");
}
else if (scores >= 60 && scores < 80)
{
Console.WriteLine("良");
}
else if (scores >= 30 && scores < 60)
{
Console.WriteLine("中");
}
else
{
Console.WriteLine("差");
}
来源:CSDN
作者:JiuMeilove
链接:https://blog.csdn.net/weixin_44368963/article/details/103976249