У кого-нибудь есть пример условного оператора в C? - PullRequest
0 голосов
/ 16 сентября 2010

Примерно так, хотелось бы увидеть полный синтаксис.

Псевдокод:

var = user_input

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

Ответы [ 6 ]

7 голосов
/ 16 сентября 2010

Как насчет чего-то вроде:

#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
2 голосов
/ 16 сентября 2010
2 голосов
/ 16 сентября 2010

Это, кажется, соответствует тому, что вы хотели бы:

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;
}
1 голос
/ 16 сентября 2010

В дополнение к двум другим ответам всегда есть троичный оператор ?:, который можно использовать так:

printf("var %s 5\n", var > 5 ? ">" : "<=");
0 голосов
/ 16 сентября 2010
char var = getchar();

if (atoi(var) > 5)
{
  printf("var > 5 \n");
}
else
{
  printf("var < 5 \n");
}
0 голосов
/ 16 сентября 2010
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";

Но этот код гораздо менее читабелен.Первая и вторая формы - лучшая практика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...