int main() { int sum=0; for (int i=1; i <=100; i++) { sum +=i; } printf(0+1+2+3+...+100=%d\n, sum); return 0;}
0. 一个问题
写一个C程序,求 sum = 1 + 2 + 3 + 4 + ...+ 100
int sum = 0;//保存结果 和
int i = 1;
sum = sum + i;// 0 + 1
i++;// i = 2
sum = sum + i;//0 + 1 + 2
i++;//i = 3
sum = sum + i;//0 + 1 + 2 + 3
i++;
sum = sum + i;//0 + 1 + 2 + 3
i++;
sum = sum + i;//0 + 1 + 2 + 3
i++;
sum = sum + i;//0 + 1 + 2 + 3
i++;
//...
把上面的两行代码,重复做100遍...
但是, 不科学,
能不能想办法,让计算机帮我重复做100遍?
C语言中,有没有这种指令让计算机重复执行一些语句呢?
循环
1.什么是循环呢?
循环的本质是 : 重复
所有重复的代码,都可以用循环来实现.
在C语言中,能够达到循环效果的("重复") 的语句有下面几种 :
(1) if 和 goto 构造循环效果
(2) while语句
(3) do while语句
(4) for语句
2 goto语句
go to school 去学校
go to bed 睡觉
...
"goto" 去哪儿
goto语句 : 让CPU去指定的地方执行, "无条件跳转语句"
语法 :
goto 行标识(语句标识);
"行标识" : 用来标识一行的地址
行标识一般写在一行的最前面,当然行标识前面允许有空白符(如 : 空格,tab,...)
行标识也属于标识符(字母,数字,下划线,第一个字符不能为数字).
每一行C代码,都可以有一个行标识.
loop:
sum = sum + i;
i++;
if(i <= 100)
goto loop;
//一般 goto 和 if 配合
练习 :
求1000以内 3 的倍数之和, 用goto语句实现循环效果 .
#include <stdio.h>
int main()
{
int sum = 0;//保存结果 和
int i = 3;
loop:
sum = sum + i;
i = i + 3;
if(i <= 1000)
{
goto loop;
}
//一般 goto 和 if 配合
printf("sum = %d\n",sum);
return 0;
}
==注意==
主张结构化程序设计的人,建议限制使用goto语句,
不是因为goto语句有问题,goto语句本身没有任何问题.
但是使用goto语句的人可能会有问题.
乱用goto语句,会使程序的可读性变差.
3 while语句
语法形式 :
while(表达式)
语句 -----> 循环体语句,要重复执行的语句
当 "表达式" 的值为真(非0) ,则执行"语句",然后再跳转到上面,继续判断"表达式"的值,
当 "表达式" 的值为真(非0) ,则执行"语句",然后再跳转到上面,继续判断的值,......
如此重复,直到"表达式" 的值为假(0) 为止.
"表达式" : 任意合法的表达式都可以, 只要有一个值就行.
"语句" : 循环体语句,要重复执行的语句
单语句 : 只有一个 ; 的语句
复合语句 : { } /if/switch/while/do while/for...
例子 :
int sum = 0;
int i = 1;
while(i <= 100)
sum = sum + i;
i++;
printf("sum = %d\n",sum);
int a;
scanf("%d",&a);
int geiwei;//保存a个位上的数字
while(a) //a != 0
{
//1.先把a个位数字给取出来
geiwei = a %10;
printf("%d ",gewei);
//2.把a的个位给干掉
a = a/10;
}
printf("\n");
#include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
int gewei;//保存a个位上的数字
while(a) //a != 0
{
//1.先把a个位数字给取出来
gewei = a %10;
printf("%d ",gewei);
//2.把a的个位给干掉
a = a/10;
}
printf("\n");
return 0;
}
4 do while循环
语法形式 :
do
语句 -----> "循环体语句, 要重复执行的语句"
while(表达式);
先执行"语句",然后再判断"表达式" 的值,当"表达式" 的值为真(非0),则继续跳转到上面,
执行"语句" ,然后再判断"表达式" 的值,当"表达式" 的值为真(非0时,则继续跳转到上面,
....
如此重复,直到"表达式" 的值为假(0) 为止.
"语句" : 循环体语句,要重复执行的语句
单语句 : 只有一个 ; 的语句
复合语句 : { } /if/switch/while/do while/for...
"表达式" : 任意合法的表达式都可以, 只要有一个值就行.
例子 :
int i = 1;
int sum = 0;
do
sum = sum + i;
i++;
while(i <= 100);
printf("sum = %d\n",sum);
/*
5.dowhile100求和.c: In function ‘main’:
5.dowhile100求和.c:10:3: error: expected ‘while’ before ‘i’
i++;
^
*/
int main() { int sum=0; for (int i=1; i <=100; i++) { sum +=i; } printf(0+1+2+3+...+100=%d\n, sum); return 0;}
0. 一个问题
写一个C程序,求 sum = 1 + 2 + 3 + 4 + ...+ 100
int sum = 0;//保存结果 和
int i = 1;
sum = sum + i;// 0 + 1
i++;// i = 2
sum = sum + i;//0 + 1 + 2
i++;//i = 3
sum = sum + i;//0 + 1 + 2 + 3
i++;
sum = sum + i;//0 + 1 + 2 + 3
i++;
sum = sum + i;//0 + 1 + 2 + 3
i++;
sum = sum + i;//0 + 1 + 2 + 3
i++;
//...
把上面的两行代码,重复做100遍...
但是, 不科学,
能不能想办法,让计算机帮我重复做100遍?
C语言中,有没有这种指令让计算机重复执行一些语句呢?
循环
1.什么是循环呢?
循环的本质是 : 重复
所有重复的代码,都可以用循环来实现.
在C语言中,能够达到循环效果的("重复") 的语句有下面几种 :
(1) if 和 goto 构造循环效果
(2) while语句
(3) do while语句
(4) for语句
2 goto语句
go to school 去学校
go to bed 睡觉
...
"goto" 去哪儿
goto语句 : 让CPU去指定的地方执行, "无条件跳转语句"
语法 :
goto 行标识(语句标识);
"行标识" : 用来标识一行的地址
行标识一般写在一行的最前面,当然行标识前面允许有空白符(如 : 空格,tab,...)
行标识也属于标识符(字母,数字,下划线,第一个字符不能为数字).
每一行C代码,都可以有一个行标识.
loop:
sum = sum + i;
i++;
if(i <= 100)
goto loop;
//一般 goto 和 if 配合
练习 :
求1000以内 3 的倍数之和, 用goto语句实现循环效果 .
#include <stdio.h>
int main()
{
int sum = 0;//保存结果 和
int i = 3;
loop:
sum = sum + i;
i = i + 3;
if(i <= 1000)
{
goto loop;
}
//一般 goto 和 if 配合
printf("sum = %d\n",sum);
return 0;
}
==注意==
主张结构化程序设计的人,建议限制使用goto语句,
不是因为goto语句有问题,goto语句本身没有任何问题.
但是使用goto语句的人可能会有问题.
乱用goto语句,会使程序的可读性变差.
3 while语句
语法形式 :
while(表达式)
语句 -----> 循环体语句,要重复执行的语句
当 "表达式" 的值为真(非0) ,则执行"语句",然后再跳转到上面,继续判断"表达式"的值,
当 "表达式" 的值为真(非0) ,则执行"语句",然后再跳转到上面,继续判断的值,......
如此重复,直到"表达式" 的值为假(0) 为止.
"表达式" : 任意合法的表达式都可以, 只要有一个值就行.
"语句" : 循环体语句,要重复执行的语句
单语句 : 只有一个 ; 的语句
复合语句 : { } /if/switch/while/do while/for...
例子 :
int sum = 0;
int i = 1;
while(i <= 100)
sum = sum + i;
i++;
printf("sum = %d\n",sum);
int a;
scanf("%d",&a);
int geiwei;//保存a个位上的数字
while(a) //a != 0
{
//1.先把a个位数字给取出来
geiwei = a %10;
printf("%d ",gewei);
//2.把a的个位给干掉
a = a/10;
}
printf("\n");
#include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
int gewei;//保存a个位上的数字
while(a) //a != 0
{
//1.先把a个位数字给取出来
gewei = a %10;
printf("%d ",gewei);
//2.把a的个位给干掉
a = a/10;
}
printf("\n");
return 0;
}
4 do while循环
语法形式 :
do
语句 -----> "循环体语句, 要重复执行的语句"
while(表达式);
先执行"语句",然后再判断"表达式" 的值,当"表达式" 的值为真(非0),则继续跳转到上面,
执行"语句" ,然后再判断"表达式" 的值,当"表达式" 的值为真(非0时,则继续跳转到上面,
....
如此重复,直到"表达式" 的值为假(0) 为止.
"语句" : 循环体语句,要重复执行的语句
单语句 : 只有一个 ; 的语句
复合语句 : { } /if/switch/while/do while/for...
"表达式" : 任意合法的表达式都可以, 只要有一个值就行.
例子 :
int i = 1;
int sum = 0;
do
sum = sum + i;
i++;
while(i <= 100);
printf("sum = %d\n",sum);
/*
5.dowhile100求和.c: In function ‘main’:
5.dowhile100求和.c:10:3: error: expected ‘while’ before ‘i’
i++;
^
*/