精华内容
下载资源
问答
  • c语言三元运算符Programmers use the ternary operator for decision making in place of longer if and else conditional statements. 程序员使用三元运算符代替较长的if和else条件语句进行决策。 The ternary ...

    c语言三元运算符

    Programmers use the ternary operator for decision making in place of longer if and else conditional statements.

    程序员使用三元运算符代替较长的ifelse条件语句进行决策。

    The ternary operator take three arguments:

    三元运算符采用三个参数:

    1. The first is a comparison argument

      第一个是比较参数
    2. The second is the result upon a true comparison

      第二是经过真正比较的结果
    3. The third is the result upon a false comparison

      第三是错误比较的结果

    It helps to think of the ternary operator as a shorthand way or writing an if-else statement. Here’s a simple decision-making example using if and else:

    将三元运算符视为简写方式或编写if-else语句会有所帮助。 这是一个使用ifelse的简单决策示例:

    int a = 10, b = 20, c;
    
    if (a < b) {
        c = a;
    }
    else {
        c = b;
    }
    
    printf("%d", c);

    This example takes more than 10 lines, but that isn’t necessary. You can write the above program in just 3 lines of code using a ternary operator.

    这个例子需要十行,但这不是必须的。 您可以使用三元运算符仅用3行代码编写以上程序。

    句法 (Syntax)

    condition ? value_if_true : value_if_false

    condition ? value_if_true : value_if_false

    The statement evaluates to value_if_true if condition is met, and value_if_false otherwise.

    如果满足condition则该语句的值为value_if_true ,否则为value_if_false

    Here’s the above example rewritten to use the ternary operator:

    这是上面的示例重写为使用三元运算符:

    int a = 10, b = 20, c;
    
    c = (a < b) ? a : b;
    
    printf("%d", c);

    Output of the example above should be:

    上面示例的输出应为:

    10

    c is set equal to a, because the condition a < b was true.

    c设置为等于a ,因为条件a < b为真。

    Remember that the arguments value_if_true and value_if_false must be of the same type, and they must be simple expressions rather than full statements.

    请记住,参数value_if_truevalue_if_false必须具有相同的类型,并且它们必须是简单的表达式而不是完整的语句。

    Ternary operators can be nested just like if-else statements. Consider the following code:

    三元运算符可以像if-else语句一样嵌套。 考虑以下代码:

    int a = 1, b = 2, ans;
    if (a == 1) {
        if (b == 2) {
            ans = 3;
        } else {
            ans = 5;
        }
    } else {
        ans = 0;
    }
    printf ("%d\n", ans);

    Here's the code above rewritten using a nested ternary operator:

    这是上面使用嵌套三元运算符重写的代码:

    int a = 1, b = 2, ans;
    ans = (a == 1 ? (b == 2 ? 3 : 5) : 0);
    printf ("%d\n", ans);

    The output of both sets of code above should be:

    上面两组代码的输出应为:

    3

    翻译自: https://www.freecodecamp.org/news/c-ternary-operator/

    c语言三元运算符

    展开全文
  • c语言三元运算符Programmers use the ternary operator for decision making in place of longer if and else conditional statements.程序员使用三元运算符代替较长的if和else条件语句进行决策。The ternary ...

    c语言三元运算符

    Programmers use the ternary operator for decision making in place of longer if and else conditional statements.

    程序员使用三元运算符代替较长的if和else条件语句进行决策。

    The ternary operator take three arguments:

    三元运算符采用三个参数:

    The first is a comparison argument 第一个是比较参数 The second is the result upon a true comparison 第二是经过真正比较的结果 The third is the result upon a false comparison 第三是错误比较的结果

    It helps to think of the ternary operator as a shorthand way or writing an if-else statement. Here’s a simple decision-making example using if and else:

    将三元运算符视为简写方式或编写if-else语句会有所帮助。 这是一个使用if和else的简单决策示例:

    int a = 10, b = 20, c;

    if (a < b) {

    c = a;

    }

    else {

    c = b;

    }

    printf("%d", c);

    This example takes more than 10 lines, but that isn’t necessary. You can write the above program in just 3 lines of code using a ternary operator.

    这个例子需要十行,但这不是必须的。 您可以使用三元运算符仅用3行代码编写以上程序。

    句法 (Syntax)

    condition ? value_if_true : value_if_false

    condition ? value_if_true : value_if_false

    The statement evaluates to value_if_true if condition is met, and value_if_false otherwise.

    如果满足condition则该语句的值为value_if_true ,否则为value_if_false 。

    Here’s the above example rewritten to use the ternary operator:

    这是上面的示例重写为使用三元运算符:

    int a = 10, b = 20, c;

    c = (a < b) ? a : b;

    printf("%d", c);

    Output of the example above should be:

    上面示例的输出应为:

    10

    c is set equal to a, because the condition a < b was true.

    c设置为等于a ,因为条件a < b为真。

    Remember that the arguments value_if_true and value_if_false must be of the same type, and they must be simple expressions rather than full statements.

    请记住,参数value_if_true和value_if_false必须具有相同的类型,并且它们必须是简单的表达式而不是完整的语句。

    Ternary operators can be nested just like if-else statements. Consider the following code:

    三元运算符可以像if-else语句一样嵌套。 考虑以下代码:

    int a = 1, b = 2, ans;

    if (a == 1) {

    if (b == 2) {

    ans = 3;

    } else {

    ans = 5;

    }

    } else {

    ans = 0;

    }

    printf ("%d\n", ans);

    Here's the code above rewritten using a nested ternary operator:

    这是上面使用嵌套三元运算符重写的代码:

    int a = 1, b = 2, ans;

    ans = (a == 1 ? (b == 2 ? 3 : 5) : 0);

    printf ("%d\n", ans);

    The output of both sets of code above should be:

    上面两组代码的输出应为:

    3

    翻译自: https://www.freecodecamp.org/news/c-ternary-operator/

    c语言三元运算符

    展开全文
  • c语言三元运算符In this article, we’ll take a look at understanding the ternary operator in C / C++. 在本文中,我们将了解C / C ++中的三元运算符。 The ternary operator (? :) is a very useful operator,...

    c语言三元运算符

    In this article, we’ll take a look at understanding the ternary operator in C / C++.

    在本文中,我们将了解C / C ++中的三元运算符。

    The ternary operator (? :) is a very useful operator, which is very similar to if-else statements. This is a useful option for programmers, to avoid cluttering the code with nested if-else conditions.

    三元运算符( ? : :)是非常有用的运算符,它与if-else语句非常相似。 对于程序员来说,这是一个有用的选项,可以避免使用嵌套的if-else条件使代码混乱。

    Let’s take a quick look at using this simple operator, using some illustrative examples!

    让我们使用一些说明性示例快速浏览使用此简单运算符!



    三元运算符 (The Ternary Operator)

    Before coming to the ternary operator, let’s look at the format for a simple if-else statement.

    在使用三元运算符之前,让我们看一下简单的if-else语句的格式。

    
    if (condition) {
        variable = expression1;
    }
    else {
        variable = expression2;
    }
    

    While this is simple enough, it might be more convenient to write it in one line and assign to a variable directly!

    尽管这很简单,但将其写成一行并直接分配给variable可能会更方便!

    We can do this through the ternary operator.

    我们可以通过三元运算符来实现。

    The ternary operator works like this and is the same as the above if-else block.

    三元运算符的工作方式与上面的if-else块相同。

    
    variable = (condition != 0) ? expression1 : expression2;
    

    See how simple it is?!

    看看有多简单?!

    What this says is that variable will be assigned the value of expression1 if condition holds true. Otherwise, it will be given the value of expression2.

    这表示如果condition成立,则将为variable分配expression1的值。 否则,它将被赋予expression2的值。

    So, this is essentially the same as the original ‘if-else’ statement.

    因此,这基本上与原始的“ if-else”语句相同。

    Let’s now look at a simple example.

    现在让我们看一个简单的例子。



    使用三元运算符-一些示例 (Using the Ternary Operator – Some Examples)

    Consider the following program, which will assign variables to -1, based on whether it is odd or even.

    考虑下面的程序,它将基于奇数还是偶数将变量分配给-1。

    
    #include <stdio.h>
    
    int main() {
        int a = 10;
        int b = 5;
    
        int c = (a % 2 == 0) ? a : -1;
        int d = (b % 2 == 0) ? b : -1;
    
        printf("a = %d, c = %d\n", a, c);
        printf("b = %d, d = %d\n", b, d);
    
        return 0;
    }
    

    Output

    输出量

    
    a = 10, c = 10
    b = 5, d = -1
    

    As you can see, since a is even, the first part (after ?) is now evaluated and assigned to c.

    如您所见,由于a是偶数,因此现在将评估第一部分(在?之后)并将其分配给c。

    While in the second case, since b is odd, the second part (after :) is now evaluated and assigned to d.

    在第二种情况下,由于b为奇数,因此现在评估第二部分(在:之后)并将其分配给d。

    Ternary operators also make writing recursive functions very easy to read.

    三元运算符还使编写递归函数非常容易阅读。

    Consider the below program, which uses a recursive function to find the fibonacci sequence, starting from 1, using ternary operators!

    考虑下面的程序,该程序使用三元运算符从1开始使用递归函数查找斐波那契序列!

    The recursive function will return 1 if n <= 1, and return fib(n-1) + fib(n-1) otherwise!

    如果n <= 1 ,则递归函数将返回1,否则将返回fib(n-1) + fib(n-1)

    
    #include <stdio.h>
    
    int fibonacci(int n) {
        return (n <= 1) ? 1 : fibonacci(n-1) + fibonacci(n - 2);
    }
    
    int main() {
        int val = fibonacci(10);
        printf("Starting from 1, fibonacci(%d) = %d\n", 10, val);
        return 0;
    }
    

    Output

    输出量

    
    Starting from 1, fibonacci(10) = 89
    

    If you work it out, you can indeed verify that the 10th fibonacci number after 1 is 89.

    如果计算出来,您确实可以验证1之后的第十个斐波那契数是89。

    The recursive function is now a simple one-liner due to the ternary operator.

    由于三元运算符,递归函数现在是一个简单的线性函数。

    Hopefully, this gives you another reason to use ternary operators more often!

    希望这为您提供了另一个更频繁使用三元运算符的理由!



    结论 (Conclusion)

    We learned about using the Ternary operator (? :), which is a nifty trick using which we can avoid writing nested if-else conditions.

    我们学习了如何使用三元运算符( ? : :),这是一个不错的技巧,可以避免编写嵌套的if-else条件。

    This makes writing simple conditional statements in a single line, which is a good option to have for C / C++ programmers.

    这使得可以在一行中编写简单的条件语句,这对于C / C ++程序员是一个不错的选择。

    参考资料 (References)



    翻译自: https://www.journaldev.com/40807/ternary-operator-in-c-plus-plus

    c语言三元运算符

    展开全文
  • 本文主要是类似wget的进度条的实现,实际就是转移符\r的使用,\r的作用是返回至行首而不换行#include #include #include //类似wget的进度条的实现,实际就是转移符\r的使用,\r的作用是返回至行首而不换行int main...

    本文主要是类似wget的进度条的实现,实际就是转移符\r的使用,\r的作用是返回至行首而不换行

    #include

    #include

    #include

    //类似wget的进度条的实现,实际就是转移符\r的使用,\r的作用是返回至行首而不换行

    int main(int argc, char *argv[])

    {

    unsigned len = 60;

    char *bar = (char *)malloc(sizeof(char) * (len + 1));

    for (int i = 0; i < len + 1; ++i)

    {

    bar[i] = '#';

    }

    for (int i = 0; i < len; ++i)

    {

    printf("progress:[%s]%d%%\r", bar+len-i, i+1);

    fflush(stdout);//一定要fflush,否则不会会因为缓冲无法定时输出。

    usleep(100000);

    //sleep(1);

    }

    printf("\n");

    return 0;

    }

    以上就是本文的全部内容了,希望大家能够喜欢。

    展开全文
  • c语言三元运算符a:b?c你知道多少

    千次阅读 2015-02-06 09:52:15
    今天遇到一个三元运算符,而没有写第二个c的值,着实让自己困惑了一把 比如:a>b?:c,知道如果a>b成立了,返回的是什么呢? 经测试发现:此时返回的是a>b的结果,一般来说,如果是表达式1(a>b)是比较运算,则...
  • 在C中,三元运算符被定义为逻辑OR表达?表达式:条件表达式其中条件表达式定义为logical-OR-expression赋值运算符的优先级低于OR运算符.因此你必须写a >= 5 ? b = 100 : ( b = 200 );否则编译器会考虑表达式( a &...
  • 也就是所谓的三元运算符,也是C语言中的唯一的三元运算符。例如:x = (y<0)?-y:y;在 = 和 ; 之间的内容是条件表达式,语句的意思:如果y小于0,那么 x = -y;否则x = y。if else表达式为:if(y<0)x = -y;elsex...
  • c语言三元运算符

    2021-07-07 19:02:48
    } 好家伙, 来对比一下python的三元运算符: a = int(input()) b = 1 if a > 0 else 0 print(a, b, sep='\n') 整么读这句话呢? 应该加上个括号就比较好理解: b = (1 if a > 0 else 0) 那么这个括号的返回值是怎么个...
  • 1. 在C语言运算符包括:算术运算符、关系运算符、赋值运算符、逻辑运算符2.用运算符把变量、常量连接起来的式子就是表达式3.我们阅读一个表达式,从表达式的功能和表达式的值来看4. 算术运算符和表达式4.1 运算符...
  • C语言中的按位运算符 & | ^ ~ > 分别要怎么用?哪位大虾能详细讲解一下!!.1、按位运算符就是直接对整数在内存中的二进制位进行操作运算。比如,&&运算本来是一个逻辑运算符,但整数与整数之间可以...
  • 概述C 语言运算符分为算术、关系、逻辑、赋值、...运算符:又称操作符,按所需求的操作数的多少可以分为一元运算符、二元运算符、和三元运算符。按照运算性质可以分算法运算符、关系运算符、逻辑运算符、赋值运算符...
  • C语言的32个关键字和9种控制语句一、C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。1 ,数据类型关键字(12个):(1) char :声明字符型变量或...
  • C语言三目运算符

    千次阅读 2020-04-15 12:36:31
    三目运算符也叫条件运算符、三元运算符,是由一个问号和一个冒号组成。 语法: 表达式1?表达式2:表达式3; 语义: 先执行表达式1,如果表达式1的结果如果为真,那么执行表达式2,并且这个整体的运算式的结果是...
  • C语言 三目运算符

    万次阅读 多人点赞 2018-10-27 20:48:29
    它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。 对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,...
  • 三元运算符的细节说明 三元运算符书写规范: 表达式1?表达式2:表达式3 三元运算符的简单说明:如果表达式1结果为true,那么就会执行表达式2,如果为false,则执行表达式3,下面写一段代码案例: #include void ...
  • C语言运算符

    2021-07-19 21:58:25
    C语言中有多种运算符,每一种都有其作用。 一、什么是运算符运算符是一种告诉执行特定的数学或逻辑操作的符号。 二、运算符种类 1.算数运算符 这里我们设变量A的值为4,变量B的值为2. 运算符 描述 实例 ...
  • c语言运算符 C语言运算符 (Operators in C Language) C language supports a rich set of built-in operators. An operator is a symbol that tells the compiler to perform a certain mathematical or logical ...
  • C语言运算符     运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C语言内置了丰富的运算符,并提供了以下类型的运算符。文章就以下运算符展开介绍。 算术运算符 关系运算符 逻辑运算符运算符 赋值...
  • C语言运算符

    2017-03-20 20:16:27
    和:,它是一个三元运算符,即有三个参与运算的操作数。由条件运算符组成条件表达式的一般形式为: 表达式1 ? 表达式2 : 表达式3 其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以...
  • C语言三目运算符小注

    2019-08-02 21:48:42
    在慕课上学浙大线性结构课程,看到有个算法用到C语言的三目运算符,研究测试了下,方便后面复习。 基本表达式: A?B:C 意思是:如果A为真,继续比较A与B,否则返回C,是一个精简版的if else表达。但嵌套的就不那么...
  • C语言逻辑运算符,位运算符总结

    万次阅读 多人点赞 2018-03-09 17:25:15
    运算符包括逻辑运算符与位运算符。 逻辑运算符针对的就是真假问题,或者说0 1 问题,也就是bool类型的。 位运算符重点在于位操作,也就是对每一位进行操作。下面逐个介绍。 & 当 & 两边是bool 类型的...
  • 09 C语言 - 运算符

    2019-10-22 10:43:02
    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符运算符 赋值运算符 ... 三元 7. 运算符优先级 ...
  • C语言运算符可以分为以下几类,这些运算符都是构成C语言程序的单词。1、算术运算符下表显示了 C 语言支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则:运算符描述 实例+把两个操作数相加A + B ...
  • 我在三目运算符里面的赋值代码段加了括号,如下 <code class="language-cpp">a > b ? (max = a), (min = b) : (max = b), (min = a);</code></pre> 还是max=6,min=6</p>

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,030
精华内容 2,012
关键字:

c语言三元运算符

c语言 订阅