【问题标题】:Does anyone have an example of a conditional statement in C?有人有C中条件语句的例子吗?
【发布时间】:2011-04-13 00:37:44
【问题描述】:

类似这样的东西,我想看看完整的语法。

伪代码:

var = user_input

if var > 5:
    output = 'var > 5'
else:
    output = 'var < 5'

【问题讨论】:

  • 您的示例已经非常接近 C。您提出了很多关于该语言的非常基本的问题 - 您是否尝试过在网上搜索教程或其他内容?
  • 请注意,当var 等于 5 时,'else' 子句错误地描述了该值。

标签: c conditional-statements


【解决方案1】:

这样的事情怎么样:

#include <stdio.h>
#include <string.h>

int main (void) {
    int var;
    char buff[100];

    printf ("Enter number> ");
    fflush (stdout);
    if (fgets (buff, sizeof(buff), stdin) == NULL) {
        printf ("\nfgets() failed\n");
        return 1;
    }
    if (sscanf (buff, "%d", &var) != 1) {
        printf ("\nsscanf() failed\n");
        return 1;
    }

    if (var > 5)
        printf ("%d is greater than 5\n", var);
    else
        printf ("%d is less than 6\n", var);

    return 0;
}

进行几次测试:

pax> testprog
Enter number> 99
99 is greater than 5

pax> testprog
Enter number> -5
-5 is less than 6

【讨论】:

  • 如果 'var' 是用户输入呢?
  • 如果你添加fflush(stdout),我会 +2 你。既然你煞费苦心地写这篇文章。 :-)
  • @John:为什么?当程序退出时,标准 I/O 流会自动刷新。
  • @Jonathan 提示打印后,我的意思是,因为它不以换行符结尾。
  • 好的。如果你不介意的话,我需要不喜欢这个答案的人为我 +1。
【解决方案2】:
char var = getchar();

if (atoi(var) > 5)
{
  printf("var > 5 \n");
}
else
{
  printf("var < 5 \n");
}

【讨论】:

    【解决方案3】:

    这似乎符合您的要求:

    int var;
    scanf("%d", &var);
    
    if (var > 5)
        printf("var > 5\n");
    else
        printf("var <= 5\n");
    

    关于使用 scanf() 的注意事项 - 我通常不喜欢它作为弹性代码,但它很快给出了一个最小的答案。

    您必须将其包装在 main()#include &lt;stdio.h&gt; 中以使其可执行:

    #include <stdio.h>
    int main()
    {
        int var;
        scanf("%d", &var);
        if (var > 5)
            printf("var > 5\n");
        else
            printf("var <= 5\n");
        return 0;
    }
    

    【讨论】:

      【解决方案4】:
      if(condition)
          doThis();
      else
          doThat();
      

      这几乎就是你所拥有的。你的例子:

      if(var > 5)
          output = "var > 5";
      else
          output = "var < 5";
      

      唯一的区别是条件表达式的语句和括号后面需要分号,而冒号不是必须的。

      您还可以使用花括号来表示在给定条件下要执行的命令块。但是,当只执行一行时,大括号不是必需的。但这相当于:

      if(var > 5)
      {
          output = "var > 5";
      }
      else
      {
          output = "var < 5";
      }
      

      您可以在ifelse 之后使用大括号,或者两者都使用,或者两者都不使用。但请记住,对于多个语句,大括号是必需的。

      还值得注意的是,换行符是可选的。可以这样写

      if(var > 5) output = "var > 5";
      else output = "var < 5";
      

      甚至

      if(var > 5) output = "var > 5"; else output = "var < 5";
      

      但是这段代码的可读性要差得多。第一种和第二种形式是更好的做法。

      【讨论】:

        【解决方案5】:
        1. Variables and datatypes
        2. Scanf
        3. Conditional statements

        希望这将帮助您入门。

        【讨论】:

          【解决方案6】:

          除了其他两个答案之外,总是有三元运算符?: 可以这样使用:

          printf("var %s 5\n", var > 5 ? ">" : "<=");
          

          【讨论】:

            猜你喜欢
            • 2011-02-18
            • 1970-01-01
            • 2016-06-17
            • 2016-12-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多