03-循环结构

 循环的3中方式

  1. while循环

  2. do...while循环

  3. for循环




  程序的结构

  1. 顺序结构

  2. 分支结构(使用ifswitch来实现)

  3. 循环结构(使用whiledo...whilefor来实现)



// 循环结构特点:满足特定条件下,反复执行某段程序

// 特定条件:循环条件

// 某段程序:循环体





// while循环的使用

//

while (条件表达式) {

    语句

}

//

// 当条件表达式成立的时候,语句就会反复的执行,一旦条件表达式为假,循环停止

// 示例代码

int a = 0;

while (a < 10) {

    // printf("a = %d", a);

    a++;

}

// a < 10   条件表达式

// printf("a = %d", a); a++;   循环体



// 练习1

// 1. while打印出1~100之间7的倍数。

int i = 0;

while (i < 100) {

    if (i % 7 == 0) {

        // printf("%d\n", i);

    }

    i++;

}

// 2. while打印出1~100之间个位为7的数。

int i2 = 0;

while (i2 < 100) {

    if (i2 % 10 == 7) {

        // printf("%d\n", i2);

    }

    i2++;

}

// 3. while打印出1~100之间十位为7的数。

int i3 = 0;

while (i3 < 100) {

    if (i3 / 10 == 7) {

        // printf("%d\n", i3);

    }

    i3++;

}

// 4. 用while打印出1~100之间不是7的倍数并且不包含7的数。

int i4 = 0;

while (i4 < 100) {

    if ((i4 %7 != 0) && (i4 / 10 != 7) && (i4 % 10 != 7)) {

        // printf("%d\n", i4);

    }

    i4++;

}





// 返回一个随机数

int random = arc4random();

// 返回一个范围在10-100之间的随机数

// 公式:arc4random() % (b - a + 1) + a; // a表示10b表示100

int random2 = arc4random() % (100 - 10 + 1) + 10;




// 练习2

// 1. 用户从控制台输入一个n,用while打印n个随机数(范围为10~30)

int n = 0;

// scanf("%d", &n);

int n0 = 0;

while (n0 < n) {

    int random3 = arc4random() % (30 - 10 + 1) + 10;

    // printf("random3 = %d\n", random3);

    n0++;

}

// 2. 用户从控制台输入一个n,用while打印n个随机数(范围为30~70),找出n个随机数中的最大值。

int n2 = 0;

// scanf("%d", &n2);

int n00 = 0;

int maxValue = 0;

while (n00 < n2) {

    int random4 = arc4random() % (70 - 30 + 1) + 30;

    if (random4 > maxValue) {

        maxValue = random4;

    }

    // printf("random4 = %d\n", random4);

    n00++;

}

// printf("maxValue is %d", maxValue);





// break作用:

// switch语句中,跳出switch语句

// 在while循环中,跳出本层循环(通常与if连用)


// continue的作用:

// 在循环中的作用:结束本次循环(continue后面的代码不再执行),进入下次循环。(通常与if连用)




// do...while循环

// 与while循环非常相似,有一点区别:

// 先执行循环体,再判断循环条件,直到条件不满足的时候,循环结束。





// for循环

 

// 循环条件为真,执行循环体。

for (int i = 0; i < 5; i++) {

    // printf("i = %d\n", i);

}



// 练习3

// 1. for打印出1~100之间7的倍数。

// 


// 2. for打印出1~100之间个位为7的数。

// 答案略


// 3. for打印出1~100之间十位为7的数。

// 答案略


// 4. 用for打印出1~100之间不是7的倍数并且不包含7的数。

for (int i = 0; i < 100; i++) {

    if ((i %7 != 0) && (i / 10 != 7) && (i % 10 != 7)) {

        // printf("%d\n", i);

    }

}


// 循环嵌套

// 打印:

// 1

// 1 2

// 1 2 3

for (int i = 1; i <= 3; i++) {

    for (int j = 1; j <= i; j++) {

        // printf("%d ", j);

    }

    // printf("\n");

}



// 练习4

// 1. 实现惩罚口诀表

for (int i = 1; i <= 9 ; i++) {

    for (int j = 1; j <= i; j++) {

        // printf("%d * %d = %-2d ", j, i, i * j);

    }

    // printf("\n");

}




// 练习5

// 1. 打印三个数字(0 - 9)的组合可能(组合成三位数)

for (int i = 1; i < 10; i++) {

    for (int j = 0; j < 10; j++) {

        for (int k = 0; k < 10; k++) {

            // printf("%d\n", i * 100 + j * 10 + k);

        }

    }

}





// 总结

// 1. for最常用,通常用于知道循环次数的循环。

// 2. while也很常用,通常用于不知道循环次数的循环。

// 3. do…while不是特别常用,通常用于需要先执行一次的循环。

 

// 4. break跳出本层循环,continue结束本次循环。通常与if连用


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值