有人在C中有一个条件语句的例子吗?

时间:2010-09-16 04:13:14

标签: c conditional-statements

像这样的东西,我希望看到完整的语法。

伪代码:

var = user_input

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

6 个答案:

答案 0 :(得分:7)

如何处理以下内容:

#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

答案 1 :(得分:2)

这似乎符合您的要求:

int var;
scanf("%d", &var);

if (var > 5)
    printf("var > 5\n");
else
    printf("var <= 5\n");

关于使用scanf()的警告 - 我通常不喜欢弹性代码,但它会迅速给出最小的答案。

您必须将其打包在main()#include <stdio.h>中以使其可执行:

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

答案 2 :(得分:2)

  1. Variables and datatypes
  2. Scanf
  3. Conditional statements
  4. 希望这会帮助你开始。

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

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";
}

您可以在if之后或else之后,或两者兼有,或两者都没有。但请记住,对于多个语句,需要大括号。

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

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

甚至

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

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

答案 5 :(得分:0)

char var = getchar();

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