day for循环
for循环与do-while 循环
do - while循环
- do …while循环的语法
do{
循环体;
}while(); //此处有一个分号!!!
注意 do - while循环最后面必须有一个分号
do - while 循环结构和while结构的最大区别是什么?
while : 当型循环
do - while: 直到型循环,傻瓜式循环
无论如何,do- while 一定比while循环多执行一次练习
*while 型循环* int num = 5; while(num >0) { printf("吃饭啦\n"); num--; } *do - while 型循环* int num = 5; do { printf("吃饭啦\n"); num--; }while(num > 0);
* do - while 循环一般应用在循环至少执行一次的时候*
* do-while 和while循环的区别 *
- 相同点: 都是循环结构,目的是将一段代码反复的执行指定的次数
2.不同点:
2.1 do while 循环是先执行后判断
while循环是结构是 先判断 在执行
2.2 在第一次判断天剑都不成立的情况下
do- while 循环会执行一次
while 循环 不会执行
结论: do - while 循环至少执行一次
- 相同点: 都是循环结构,目的是将一段代码反复的执行指定的次数
for循环的使用
* 格式*
for (初始化表达式; 判断条件; 增量语句)
{
循环体;
}
** while循环和for循环之间的额转换
1>用for循环打印10次hello world
int main()
{
for (int i = 0; i<10; i++) {
printf("hello world\n");
}
return 0;]]
}
2>while循环打印10次hello world
int main()
{
int i = 0;
while (i < 10) {
printf("hello world!\n");
i++;
}
return 0;
}
3>for循环转换成while循环
int main()
{
int i = 0
for (;i<10;) {
printf("hello world\n");
i++
}
return 0;
}
for循环练习
1.利用for循环求1-100之间的偶数的累加和
int sum = 0;//求和的变量
for (int i = 1; i < 101; i++) {
if (i % 2 == 0) {//判断这个数 是不是偶数
// printf("%d ",i);
//把打印去掉 直接加到某一个容器
sum+=i;
}
}
printf("sum = %d\n",sum);
2.利用for循环求100-999之间的水仙花数
for (int i = 100; i < 1000; i++) {
//水仙花数: 各个位上的立方和 等于本身的数
/*
456:
个位:456%10 -->6
十位:456/10%10--->5
百位:456/100 --->4
*/
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100;
if ( (ge*ge*ge + shi*shi*shi + bai*bai*bai) == i) {
printf("%d ",i);
}
}
for循环的额注意事项
- 如果在三个表达式中已经修改了循环增量的值 那么就不在循环体内修改循环增量的值了
- 第三个表达式后面没有分号
- 三个表达是的位置是固定的
- 第一个是初始化表达式
- 第二个是循环条件
- 第三个是 新欢后改变增量的表达式
- 三个表达式都可以省略,但是分号不能省略
- 如果第二个表达式省略,那么循环条件默认是成立的
- 这个表达式可以写任意的c语句
关于省略大括号
1. 不建议省略,这里我一代而过吧
2. 如果语句后面只有一句代码, 那么这个大括号可以省略
3. 单独一个分号也是一个语
嵌套循环
- 什么是嵌套循环
- 一个循环的循环体中 含有另外一个循环
- 嵌套循环的特点
- 外层循环执行一次,内存循环执行所有次
- 嵌套循环的使用场景
- 一件事要完成一次 必须完成另外一件事n次
- 一个循环的循环体中 含有另外一个循环
下面是我写的关于各种三角形的例子大家能看懂就好
//
// main.c
// 打印三角形
//
// Created by 李典 on 16/7/27.
// Copyright © 2016年 李典. All rights reserved.
/*
打印三角形 各种三角形
*/
#include <stdio.h>
void zuoZhiJiao();
void youZhiJiao();
void sanJiaoXing();
void dunJiaoSanJiaoXing();
void shuZi();
void shuZi1();
int main(int argc, const char * argv[])
{
printf("直角三角形\n");
zuoZhiJiao();
printf("右直角三角形\n");
youZhiJiao();
printf("三角形\n");
sanJiaoXing();
printf("钝角三角形\n");
dunJiaoSanJiaoXing();
printf("数字每列一样\n");
shuZi();
printf("数字叠加\n");
shuZi1();
return 0;
}
/**
*
**
***
****
*/
void zuoZhiJiao()
{
for (int i = 1; i < 5; i++)
{
for (int j = 0; j < i; j++) {
printf("* ");
}
printf("\n");
}
}
/**
----*
---**
--***
-****
*/
void youZhiJiao()
{
for (int i = 1; i < 5; i++)
{
for (int j = 5; j > i; j--)
{
// printf("-");
printf(" ");
}
for (int q = 0; q < i; q++) {
printf("* ");
}
printf("\n");
}
}
/**
---* 1
--*** 3
-***** 5
******* 7
*/
void sanJiaoXing()
{
for (int i = 1; i < 5; i++)
{
for (int j = 5; j > i; j--) {
// printf("-");
printf(" ");
}
for (int q = 0; q < 2*i - 1 ; q++) {
printf("* ");
}
printf("\n");
}
}
/**
------*
----**
--***
****
*/
void dunJiaoSanJiaoXing()
{
for (int i = 1; i < 5 ; i++)
{
for (int j = 8; j > 2*i - 1; j--)
{
// printf("-");
printf(" ");
}
for (int q = 0; q < i; q++) {
printf("* ");
}
printf("\n");
}
}
/*
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
*/
void shuZi()
{
for(int i = 1; i < 6; i++)
{
for(int j = 1; j < i + 1; j++)
{
printf("%d ",i);
}
printf("\n");
}
}
/*
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
*/
void shuZi1()
{
for(int i = 1; i < 7;i++)
{
for(int j = 1; j < i+1; j++)
{
printf("%d ",j);
}
printf("\n");
}
}
跟大家分享一道今天在网上看到的面试题
int main()
{
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
//这里写一段代码,结束外层循环
}
}
return 0;
}
### 哈哈 思考一下吧 答案明天 为大家揭晓