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;
}
发布了52 篇原创文章 · 获赞 5 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/shuan9999/article/details/52325025