c# 有人能解释一下这个布尔逻辑吗

发布于 2024-09-17 11:58:50 字数 199 浏览 4 评论 0原文

// Example bool is true
bool t = true;

// Convert bool to int
int i = t ? 1 : 0;
Console.WriteLine(i); // 1

这会将 false 转换为 0,将 true 转换为 1,有人可以向我解释 t 是如何转换的吗? 1:0 有效吗?

// Example bool is true
bool t = true;

// Convert bool to int
int i = t ? 1 : 0;
Console.WriteLine(i); // 1

This converts false to 0 and true to 1, can someone explain to me how the t ? 1 : 0 works?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

埋情葬爱 2024-09-24 12:00:25

我相信编译器在内部会将语句内联为相当于:

Console.WriteLine(Convert.ToInt32(t));

此 Convert.x 方法检查传递的参数是否为 true,如果不是则返回 0。

I believe that internally the compiler will inline the statement to the equivalent of:

Console.WriteLine(Convert.ToInt32(t));

This Convert.x method checks to see if the passed parameter is true return 0 if it isn't.

睫毛上残留的泪 2024-09-24 12:00:14

(? *) 这是条件运算符。

条件运算符 (?:) 根据布尔表达式的值返回两个值之一。条件运算符的形式为

条件?第一个表达式:第二个表达式;

在你的情况下 (true?1:0 ) 因为条件为 true ,这肯定是将 i 的值设置为 1。

(? *) this is conditional operator.

The conditional operator (?:) returns one of two values depending on the value of a Boolean expression. The conditional operator is of the form

condition ? first_expression : second_expression;

here in you case (true?1:0 ) since the condition is true ,which is certainly setting value of i to 1.

入画浅相思 2024-09-24 12:00:05
bool t= true;
int i;

if(t) 
{
 i=1;
}
else
{
 i=0;
}

有关更多信息,请查看 ?: 运算符

bool t= true;
int i;

if(t) 
{
 i=1;
}
else
{
 i=0;
}

For more look ?: Operator

温馨耳语 2024-09-24 11:59:45

如果 t 等于 true 则 i=1 否则 i=0

三元运算符

if t equels true then i=1 else i=0

ternary operator

怪我闹别瞎闹 2024-09-24 11:59:35

它是 C# 条件运算符。

i = does t == true? if yes, then assign 1, otherwise assign 0.

也可以写为:

if (t == true)
   t = 1;
else 
   t = 0;

if (t)
  t = 1;
else
  t = 0;

由于t 为 true,则打印 1。

It's the C# Conditional Operator.

i = does t == true? if yes, then assign 1, otherwise assign 0.

Can also be written as:

if (t == true)
   t = 1;
else 
   t = 0;

or

if (t)
  t = 1;
else
  t = 0;

Since t is true, it prints 1.

压抑⊿情绪 2024-09-24 11:59:24

查看三元运算符

int i = t ? 1 : 0;

等同于:

if(t)
{
    i = 1;
}
else
{
    i = 0;
}

这种语法可以在多种语言中找到,甚至在 JavaScript 中也可以找到。

如果你把冒号换成“otherwise”,就可以把它想象成一个英语句子:

bool isItRaining = false;
int layersOfClothing = isItRaining? 2 otherwise 1;

Look at the Ternary Operator.

int i = t ? 1 : 0;

Equates to:

if(t)
{
    i = 1;
}
else
{
    i = 0;
}

This syntax can be found in a variety of languages, even javascript.

Think of it like an English sentence if you swap the colon for "otherwise":

bool isItRaining = false;
int layersOfClothing = isItRaining? 2 otherwise 1;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文