首页 > 编程语言 >C# 布尔值和条件语句:入门指南和实用示例

C# 布尔值和条件语句:入门指南和实用示例

时间:2024-01-21 10:47:31浏览次数:31  
标签:Console 示例 C# 18 else 布尔值 WriteLine

C# 布尔值

在编程中,通常需要一个只能有两个值之一的数据类型,比如:

  • 是 / 否
  • 开 / 关
  • 真 / 假

为此,C# 有一个 bool 数据类型,可以取 truefalse 的值。

布尔值

使用 bool 关键字声明布尔类型,只能取 truefalse 的值:

示例:

bool isCSharpFun = true;
bool isFishTasty = false;
Console.WriteLine(isCSharpFun);   // 输出 True
Console.WriteLine(isFishTasty);   // 输出 False

然而,更常见的是从布尔表达式中返回布尔值,用于条件测试。

布尔表达式

布尔表达式通过比较值/变量返回布尔值:TrueFalse。这对于构建逻辑和找到答案很有用。

例如,您可以使用比较运算符,比如大于(>)运算符,以查找表达式(或变量)是否为 true

示例:

int x = 10;
int y = 9;
Console.WriteLine(x > y); // 返回 True,因为 10 高于 9

甚至更简单:

示例:

Console.WriteLine(10 > 9); // 返回 True,因为 10 高于 9

在下面的示例中,我们使用等于(==)运算符来评估表达式:

示例:

int x = 10;
Console.WriteLine(x == 10); // 返回 True,因为 x 的值等于 10

示例:

Console.WriteLine(10 == 15); // 返回 False,因为 10 不等于 15

现实生活中的例子

让我们想象一个“现实生活中的例子”,我们需要找出一个人是否足够年龄投票。

在下面的示例中,我们使用 >= 比较运算符来查找年龄(25)是否大于或等于投票年龄限制,该限制设置为 18:

示例:

int myAge = 25;
int votingAge = 18;
Console.WriteLine(myAge >= votingAge);

很酷,对吧?更好的方法是将上述代码包装在 if...else 语句中,这样我们可以根据结果执行不同的操作:

示例:
如果 myAge 大于或等于 18,则输出“足够年龄投票!”。否则输出“不足够年龄投票。”:

int myAge = 25;
int votingAge = 18;

if (myAge >= votingAge) 
{
  Console.WriteLine("Old enough to vote!");
} 
else 
{
  Console.WriteLine("Not old enough to vote.");
}

表达式的布尔值是所有 C# 比较和条件的基础。

C# 条件和 if 语句

C# 支持数学中的常见逻辑条件:

  • 小于:a < b
  • 小于或等于:a <= b
  • 大于:a > b
  • 大于或等于:a >= b
  • 等于:a == b
  • 不等于:a != b

您可以使用这些条件来执行不同的决策。

C# 具有以下条件语句:

  • 使用 if 指定要执行的代码块,如果指定的条件为 true
  • 使用 else 指定要执行的代码块,如果相同的条件为 false
  • 使用 else if 指定要测试的新条件,如果第一个条件为 false
  • 使用 switch 指定要执行的许多替代代码块

if 语句

使用 if 语句指定在条件为 True 时要执行的 C# 代码块。

语法:

if (condition) 
{
  // 如果条件为 True,则执行的代码块
}

请注意,if 是小写字母。大写字母(IfIF)将生成错误。

在下面的示例中,我们测试两个值,以查找 20 是否大于 18。如果条件为 True,则打印一些文本:

示例:

if (20 > 18) 
{
  Console.WriteLine("20 is greater than 18");
}

我们也可以测试变量:

示例:

int x = 20;
int y = 18;
if (x > y) 
{
  Console.WriteLine("x is greater than y");
}

示例说明:
在上面的示例中,我们使用两个变量 x 和 y 来测试 x 是否大于 y(使用 > 运算符)。由于 x 为 20,y 为 18,并且我们知道 20 大于 18,因此我们在屏幕上打印 "x is greater than y"。

C# else 语句

使用 else 语句指定在条件为 False 时要执行的代码块。

语法:

if (condition)
{
  // 如果条件为 True,则执行的代码块
} 
else 
{
  // 如果条件为 False,则执行的代码块
}

示例:

int time = 20;
if (time < 18) 
{
  Console.WriteLine("Good day.");
} 
else 
{
  Console.WriteLine("Good evening.");
}
// 输出 "Good evening."

示例说明:

在上面的示例中,时间(20)大于 18,因此条件为 False。因此,我们转到 else 条件并在屏幕上打印 "Good evening"。如果时间小于 18,程序将打印 "Good day"。

C# 中的 else if 语句

使用 else if 语句在第一个条件为 False 时指定新的条件。

if (condition1)
{
  // 如果condition1为真,则执行的代码块
} 
else if (condition2) 
{
  // 如果condition1为假且condition2为真,则执行的代码块
} 
else
{
  // 如果condition1为假且condition2为假,则执行的代码块
}

// 示例
int time = 22;
if (time < 10) 
{
  Console.WriteLine("早上好。");
} 
else if (time < 20) 
{
  Console.WriteLine("白天好。");
} 
else 
{
  Console.WriteLine("晚上好。");
}
// 输出 "晚上好。"

示例说明:

在上面的示例中,时间(22)大于 10,因此第一个条件为 False。在 else if 语句中的下一个条件也为 False,因此我们转到 else 条件,因为 condition1condition2 都为 False,并在屏幕上打印"晚上好"。

然而,如果时间是 14,我们的程序将打印"白天好"。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

标签:Console,示例,C#,18,else,布尔值,WriteLine
From: https://www.cnblogs.com/xiaowange/p/17977579

相关文章

  • Linux内核accept系统调用源码分析
    内核版本:Linux3.10内核源码地址:https://elixir.bootlin.com/linux/v3.10/source(包含各个版本内核源码,且网页可全局搜索函数)一、应用层-accept()函数/***sockfd:监听socket的文件描述符*addr:存放地址信息的结构体的首地址(用来保存客户端的IP、Port)*addrlen:存放地......
  • QOJ 4996 Icy Itinerary
    先转化题目条件。发现把\(n\)个点划分为\(2\)个点集,满足其中一个点集存在哈密顿路,另一个点集在补图中存在哈密顿路和原问题是等价的。令直接存在哈密顿路的点集为\(X\),其路径端点分别为\(S_X,T_X\);补图中存在哈密顿路的点集为\(Y\),路径端点分别为\(S_Y,T_Y\);考虑\(......
  • pd.read_csv( parse_dates=True) AttributeError: 'DatetimeIndex' object has no a
    pandas读取文件的read_csv()方法的parse_dates,index_col参数介绍 pd.read_csv(parse_dates=True)    data=pd.read_csv(f'datasets/{name}.csv',index_col='date',parse_dates=True)dt.weekofyear.to_numpy(),df_asset[“week_of_year”]=df_asset.index.we......
  • CF990E
    分析坑点:(你需要覆盖整个区间,而非只覆盖整数点,例如\(n=3\),\([0,1],[2,3]\)是不够的。)翻译没把这个写上去,搞得我思考了很久样例。看到这个之后,题目可以转化为每个灯可以覆盖\([x,x+l)\),你需要覆盖区间\([0,n)\)中的整数点。如果没有障碍物,我们直接枚举每个灯放哪,复杂度\(O......
  • astronomer-cosmosy一个方便dbt 在apache airflow 运行的工具
    dbt在国外比较火,同时社区也提供了不少调度运行模式(core部分没提供),研究apacheairflow是一个不错的选择,但是原生script模式的调用比较简单,astronomer-cosmosy提供了方便dbt在apacheairflow通过dag以及taskgroups运行的功能支持的特性基于airflowconnections的链接,......
  • CF526F Pudding Monsters 题解
    题目链接:CF或者洛谷析合树真是连续段问题的降智神器先看下题目的一些特殊性,每行每列恰好有一个棋子。考虑特殊性,\(n\timesn\)的棋盘,那么就该判断是否有\(n\)个棋子,容易观察到,也就是相当于每一行并且每一列都有一个棋子。而容易知道,这些棋子所在的行或者列拿出来应当是“......
  • node-red__function_1
               ......
  • CF1542B Plus and Multiply
    CF1542BPlusandMultiply题目传送门题意有一个集合,最开始集合中只有\(1\),又有\(a\),\(b\),如果集合中存在\(k\),那么将\(ka\)和\(k+b\)加入集合试求,\(n\)是否尊在于集合之中思路稍加枚举(或者瞪眼大法)可得,该集合中的任何数都可被表示为\(k=ax+by\)(\(a,b\)为非负整数)分个类更......
  • C++多重返回值:引用参数、结构体和元组实例详解
     在C++中,函数通常只能返回一个值。但是,可以通过引用参数、结构体、元组(C++11及以后版本支持)等方式实现函数具有多个返回值的效果。以下是其中几种方法的实例:1.通过引用参数:#include<iostream>//通过引用参数实现多个返回值voidmultipleReturns(inta,intb,int&......
  • CF1562C Rings
    CF1526CRings题目传送门题目大意从一个长度为\(n\)的二进制数中截取两个长度大于等于\(\lfloor\frac{n}{2}\rfloor\)的二进制数,使两个数存在倍数(正整数倍)关系思路不要想太复杂,这题真的没那么难(虽然我最开始也想复杂了可以在\(0\)上做文章举个例子,假如我有一个二进制数\(......