do-while循環、break、continue、數組

1、do~while循環:

一般用於菜單類程序

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        int x = 0;
        do
        {
            printf("%d ", x);
            x++;
        }while (x < 10);
        printf("\n");

        double money = 0;
        NSLog(@"請輸入您要取的錢數:");
        do
        {
            scanf("%lf", &money);
            if (money <= 0)
            {
                NSLog(@"輸入錯誤,請重新輸入:");
            }
        }while (money <= 0);
        NSLog(@"您已經獲得了¥%.2lf元", money);

        int fun;
        do
        {
            NSLog(@"1.打開文件");
            NSLog(@"2.保存文件");
            NSLog(@"3.退出");
            NSLog(@"請選擇:");
            scanf("%d", &fun);
            ;//處理菜單的功能
        }while (fun != 3);
    }
    return 0;
}

2、三種循環的區別

判斷先後的區別:
    for、while是先判斷,後執行循環體
    do~while是先執行循環體,後判斷
用途:
    for:用於固定次數的循環
    while:用於不固定次數的循環
    do~while:用於菜單類程序

3、break語句:

終止這個循環

#import <Foundation/Foundation.h>

int main()
{
    @autoreleasepool {
        for (int i = 0; i < 10; i++)
        {
            printf("%d ", i);
            if (i == 5)
            {
                break;
            }
        }
        printf("\n");

        double money = 0;
        NSLog(@"請輸入您要取的錢數:");
        while (1)
        {
            scanf("%lf", &money);
            if (money > 0)
            {
                break;
            }
            NSLog(@"輸入有誤,請重新輸入");
        }
        NSLog(@"您已經獲得了¥%.2lf元", money);
    }
    return 0;
}

4、continue語句:

結束本次循環

#import <Foundation/Foundation.h>

int main()
{
    @autoreleasepool {
        for (int i = 0; i < 10; i++)
        {
            if (i % 2 == 0)
            {
                continue;
            }
            printf("%d ", i);
        }
        printf("\n");


        for (int i = 1; i <= 5; i++)
        {
            if (i % 2)
            {
                printf("*");
            }
            else//*#*#*#$
            {
                continue;
            }
            printf("#");
        }
        printf("$\n");

        //打印10以內的正整數,但不打印5
        for (int i = 0; i < 10; i++)
        {
            if (i == 5)
            {
                continue;
            }
            printf("%d ", i);
        }
        printf("\n");
    }
    return 0;
}

5、輸出緩衝區

01

#import <Foundation/Foundation.h>

int main()
{
    @autoreleasepool {
        NSLog(@"等5秒");
        for (int i = 0; i < 10; i++)
        {
            printf("%d ", i);
            fflush(0);
        }
        sleep(5);
        printf("\n");

        for (int i = 0; i < 10; i++)
        {
            printf("%d ", i);
            sleep(1);
            fflush(0);
        }
        printf("\n");
    }
    return 0;
}

6、循環嵌套:

一個循環的循環體內有另一個循環

#import <Foundation/Foundation.h>

int main()
{
    @autoreleasepool {
        for (int j = 0; j < 4; j++)//行數
        {
            for (int i = 0; i < 10; i++)//一行中打印多少列
            {
                printf("*");
            }
            printf("\n");
        }


        /*
         **
         ***
         ****
         *****/
        for (int i = 0; i < 5; i++)
        {
            for (int j = 0; j <= i; j++)
            {
                printf("*");
            }
            printf("\n");
        }
        /*----------
         1x1=1
         1x2=2  2x2=4
         1x3=3  2x3=6   3x3=9
         1x4=4  2x4=8   3x4=12  4x4=16
         ...
         ----------*/
        for (int i = 1; i <= 9; i++)
        {
            for (int j = 1; j <= i; j++)
            {
                printf("%dx%d=%d \t", j, i, i * j);
            }
            printf("\n");
        }


        /*-----------
              *
             ***
            *****
           *******
         -----------*/
        for (int i = 0; i < 4; i++)
        {
            for (int j = 0; j < 3 - i; j++)
            {
                printf(" ");
            }
            for (int j = 0; j < 2 * i + 1; j++)
            {
                printf("*");
            }
            printf("\n");
        }
    }
    return 0;
}

7、數組

什麼是數組:一組數,即多個變量的集合
下標:用於區分數組元素的方法
數組的初始化(3種情況+1種C99新方法,day06-08)
數組名與數組首地址
#import <Foundation/Foundation.h>

int main()
{
    @autoreleasepool {
        int x = 10;

        int a[10] = {1,2,3,4,5,6,7,8,9,0};
        for (int i = 0; i < 10; i++)
        {
            printf("%d ", a[i]);
        }
        printf("\n");

        int b[] = {1,2,3,4,5};//數組長度等於初始化元素的個數時,可以不寫數組長度
        for (int i = 0; i < 5; i++)
        {
            printf("%d ", b[i]);
        }
        printf("\n");

        int c[10] = {1,2,3,4,5};//數組長度大於初始化元素的個數時,多餘的元素會被自動清0
        for (int i = 0; i < 10; i++)
        {
            printf("%d ", c[i]);
        }
        printf("\n");
        int e[10] = {0};
        int f[10] = {};
        for (int i = 0; i < 10; i++)
        {
            printf("%d ", e[i]);
        }
        printf("\n");

        int d[5] = {1,2,3,4,5,6,7};//數組長度小於初始化元素的個數時,多餘的會被直接丟棄
        for (int i = 0; i < 7; i++)
        {
            printf("%d ", d[i]);
        }
        printf("\n");


        //C99標準新增的方法
        int g[5] = {[2] = 20, [0] = 5, [4] = 40};//可以指定元素的初始化,未指定的元素將被清0
        for (int i = 0; i < 5; i++)
        {
            printf("%d ", g[i]);
        }
        printf("\n");

        int h[] = {[2] = 20, [6] = 50, [0] = 10};
        int size = sizeof(h) / sizeof(h[0]);
        NSLog(@"%d", size);
        for (int i = 0; i < size; i++)
        {
            printf("%d ", h[i]);
        }
        printf("\n");


        //定義一個數組,長度爲10,並對其進行初始化。將數組內的所有元素都向前移動一個位置,第0個元素移動到最後一個元素的位置
        int k[10] = {1,2,3,4,5,6,7,8,9,0};
        int temp = k[0];
        for (int i = 0; i < 9; i++)
        {
            k[i] = k[i + 1];
        }
        k[9] = temp;
        for (int i = 0; i < 10; i++)
        {
            printf("%d ", k[i]);
        }
        printf("\n");
    }
    return 0;
}
數組的賦值與拷貝
#import <Foundation/Foundation.h>

int main()
{
    @autoreleasepool {
        int a[5];
        NSLog(@"%lu", sizeof(a));//a被稱爲數組名
        NSLog(@"%lu", sizeof(int[5]));//int[5]是數組a的數據類型

        a[0] = 10;//習慣上,將數組中的每個變量稱爲一個元素
        a[1] = 20;
        for (int i = 0; i < 5; i++)
        {
            a[i] = (i + 1) * 10;
        }
        for (int i = 0; i < 5; i++)
        {
            NSLog(@"請輸入第%d個學生的成績", i + 1);
            scanf("%d", &a[i]);
        }
        for (int i = 0; i < 5; i++)
        {
            printf("%d ", a[i]);
        }
        printf("\n");
    }
    return 0;
}

思考練習

1、打印100以內的所有數,但不包括7、7的倍數和帶7的數;
2、創建一個長度爲10的數組,每個元素是一個0~99之間的隨機數,要求找出這10個隨機數中最大的一個,並輸出。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
解析:

#import <Foundation/Foundation.h>

int main()
{
    @autoreleasepool {
        srand((unsigned)time(0));

        for (int i = 0; i < 100; i++)
        {
            if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7)
            {
                continue;
            }
            printf("%d ", i);
        }
        printf("\n");


        int a[10];
        for (int i = 0; i < 10; i++)
        {
            a[i] = rand() % 100;
        }
        int max = a[0];
        for (int i = 1; i < 10; i++)
        {
            if (max < a[i])
            {
                max = a[i];
            }
        }
        for (int i = 0; i < 10; i++)
        {
            printf("%d ", a[i]);
        }
        printf("\n");
        printf("max=%d\n", max);
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章