在c中连续跳出两个循环

时间:2012-10-12 15:20:32

标签: c

我正在尝试制作一个

的程序
  1. 显示我的文字1秒,然后清除
  2. 打印8 * 8块随机数100000次(移动数字装饰)然后
  3. 当我按下一个键时退出。
  4. 这是我的代码:

    #include stdio;
    #include stdlib;
    main() {
        printf("Welcome to random number V2.0");
        usleep(1000);
        printf("\033[2J\033[1;1H");
        printf("Press X to terminate at any time");
        usleep(1000);
        printf("\033[2J\033[1;1H");
        printf("Program starting");
        usleep(500);
        printf("\033[2J\033[1;1H");
        for(index=0;index<100000;index++) {
            Randomnumber;
            printf("%s". matrix)
            usleep(5);
            printf("\033[2J\033[1;1H");
            usleep(5);
    
        }
    
        Randomnumber() {
            int matrix[9][9];
            int index_x;
            int index_y;
            int index;
            for (index_x=0;index_x<9;index_x++) {
                for (index_y=0;index_y<9;index_y++) {
                    /*randomizer code goes here, till change ran# statement*/
                    matrix [index_x][index_y] = ran
    #;
                }
            }
        }
    

    正如您所看到的,我需要一种方法来停止for循环中的程序。我找到了一个函数,如果一个键在键盘buffer(kbhit)中,它将返回一个非NULL值,但我不知道这怎么可以让我跳出两个循环。 (抱歉,我的草率代码。Kbhitusleep不在常用的C库中,但它适用于lcc。)

2 个答案:

答案 0 :(得分:3)

return可行。

index_x = 100, index_y = 100; break;

也是如此

方法A:

Randomnumber() 
{
    int matrix[9][9], x, y;
    for (x=0;  x<9;  ++x)
        for (y=0;  y<9;  ++y)
        {
            matrix [x][y] = rand();
            if (some condition which means we're done)
                 x = 100, y = 100;
        }
}

方法B:

Randomnumber() 
{
    int matrix[9][9], x, y;
    for (x=0;  x<9;  ++x)
        for (y=0;  y<9;  ++y)
        {
            matrix [x][y] = rand();
            if (some condition which means we're done)
                 return;
        }
}

答案 1 :(得分:1)

您可以更改Randomnumber()以返回值:“中断”可能为1; 0表示成功。

然后main中的循环变为

 for (...) {
   if (Randomnumber() != 0) {break;}
   ...
 }

(另请注意,您需要()来实际从main调用该函数。 声明返回类型和参数是很好的做法,即使它们只是(void)。 默认的返回类型是1978年