首页 > 解决方案 > 如何创建循环以在 C 中的功能菜单之间切换?

问题描述

我想创建一个有 2 页的菜单,因为我的功能太多。当我命令切换到第 1 页(0.Back)时,我想出了将循环的头部放在第 1 页的第一行的想法,我将切换到它并开始一个新的循环,但我不知道如何。

int main () {

struct student list[100];
int numberOfStudent = 0;
int choice;
while(1) {          // infinite loop
    printf("Please choose: \n");
    //page 1
    printf("2. Enter student information: \n");
    printf("3. Print student information: \n");
    printf("4. Calculate average of student: \n");
    printf("5. Ranking student by score: \n");
    // printf("1. Next \n");   //only can seen at page 1
    // Then it switch to next page:
    printf("6. search student by name: \n");
    printf("7. Update student information: \n");
    printf("8. Delete student information: \n");
    // printf("0. Back \n");  // only can seen at page 2

    printf("00. Exit. \n"); // 00 always their in botton.
    printf("Your choice: "); scanf("%d", &choice);
    switch (choice) {
        case 1:
            get_list_of_student(list, &numberOfStudent);
            break;
        case 2:
            calculate_average(list, numberOfStudent);
            break;
        case 3:
            print_list_of_student(list, numberOfStudent);
            break;
        case 4: 
            ranking_student_score(list, numberOfStudent);
            break;
        case 5:
            search_student_name(list, numberOfStudent);
            break;
        case 6: 
            update_student_infomation(list, numberOfStudent);
            break;
        case 7:
            delete_student_information(list, numberOfStudent);
            break;
        case 00:
            exit(0);
    }
}
return 0;
}

标签: c

解决方案


在这里,我创建了一个名为 的变量page,赋值为 1,因为页面 1 将始终首先显示,并且有一个用于更改页面的 do-while 循环。

#include <stdio.h>

int main()
{
    struct student list[100];
    int numberOfStudent = 0;
    int choice ;
    int page = 1;
    while(1) { // infinite loop
        do{
            if(page == 1)
            {
                //options for page 1
                //get choice
                switch(choice)
                {
                    //case for 1st page options
                    case 0: page = 2;
                        break;
                }
            }
            else if(page == 2)
            {
                //options for page 2
                //get choice
                switch(choice)
                {
                    //case for 2nd page options
                    case 0: page = 1;
                        break;
                }
            }
        }while(choice == 0)
    }
    return 0;
}

推荐阅读