Как я могу использовать функции в switch-case? - PullRequest
0 голосов
/ 09 декабря 2018

Эй, я искал его, но не могу найти ... Мне нужна функция для получения информации от пользователя в случае переключения.

switch (/* FUNCTION  */) {

Как можно использовать функции в этой ситуации?

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Напишите функцию, которая запрашивает ввод у пользователя, а затем вызовите эту функцию в выражении переключателя.например:

int getInt(void)
{
    int i;
    printf("enter number:\n");
    if (scanf (" %d", &i)==1) return i;
    return 0;
}

int main()
{
    //...
    switch (getInt()) {
    case 0: printf("Error\n"); break;
    case 1: //...
    case ...
    }
}
0 голосов
/ 09 декабря 2018

Пока функция возвращает целочисленный тип, вы можете это делать.Итак, учитывая:

int someFunction( void ) ;

Тогда:

switch( someFunction() )
{
    ...

действительно.Он немного отличается от:

int x = someFunction() ;
switch( x )
{
    ...

, но последний, возможно, легче отладить.Например, вы можете пошагово выполнить последний шаг и узнать из значения x, в каком случае будет введен регистр, и иметь возможность изменить x для принудительного выбора альтернативного пути.У первого мало заслуг, кроме краткости.

...