C 语言中控制分为三种:顺序,选择,循环
1)顺序:程序顺序执行(无特别)
2)选择:
1.if系列
if //选择满足条件的,然后做什么
eg:如果变量 a 的值为 3,则将 a 的值改为 5
if(a == 3) //建议写成 if(3 == a)
{
a = 5;
}
if..else //满足条件的做什么,不满足条件的又怎么做
eg:如果变量 a 的值大于 10,将a-1赋给a,否则将 a+1 赋给a
if(a > 10)
{
a = a - 1;
}
else
{
a = a + 1;
}
if..else if.. else if .. else
eg:将成绩(score)在90-100之间的,等级(grade)赋值为‘A’
将成绩在 80-89之间的,等级赋值为 'B'
将成绩在 70-79之间的,等级赋值为 'C'
将成绩在 60-69之间的,等级赋值为 'D'
将成绩在 < 60 的,等级赋值为 'E'
if(score >= 90 && score <= 100)
{
grade = 'A';
}
else if(score >= 80)
{
grade = 'B'
}
else if(score >= 70)
{
grade = 'C'
}
else if(score >= 60)
{
grade = 'D'
}
else
{
grade = 'E'
}
2.switch() //多分支选择语句
case 后面只能是常量和常量表达式。default可以放在任何的地方,
对结果不影响。
eg:
将成绩(score)在90-100之间的,等级(grade)赋值为‘A’
将成绩在 80-89之间的,等级赋值为 'B'
将成绩在 70-79之间的,等级赋值为 'C'
将成绩在 60-69之间的,等级赋值为 'D'
将成绩在 < 60 的,等级赋值为 'E'
switch(score/10)
{
case 10:
case 9: grade = 'A';break;
case 8: grade = 'B';break;
case 7: grade = 'C';break;
case 6: grade = 'D';break;
default: grade = 'E';break;
}
3)循环
while(表达式) 语句;
do{ 语句;}while(表达式);
for:
for(第一个表达式;第二个表达式;第三个表达式) 语句;
(初始化部分;条件判断部分;步进部分)
求1-100的和;
1.while
int sum = 0;
int i = 1;
while(i <= 100)
{
sum = sum + i; //sum += i;
i++;
}
2.do{}while
int sum = 0;
int i = 1;
do
{
sum += i;
i++;
}while(i <= 100);
3.for: for(;;){} //如果语句块中有if语句,效率会降低。
格式:
for(表达式1;表达式2;表达式3){循环体}//表达式2一般是判断
执行顺序:
表达式1->判断表达式2是否为真,若为真,则执行循环体,在执行表达式3,再判断表达式2,若真,继续执行循环体,再执行表达式3,依次类推,直到表达式2为假,则推出循环
int sum = 0;
int i;
for(i=1;i<=100;i++)
{
sum += i;
}
4.goto //C语言中不建议用,实现跳转,程序的可读性会降低
比较:
1)while 和 do..while的比较
当第一次条件为真时,两个没有任何区别。当第一次条件为假时,while的循环体依次都不会执行,但do..while的循环体要执行一次,即do..while的循环体至少执行一次
2)while系列与for的比较
一般情况下:
for循环用于知道循环次数的情况下,而while系列的循环用于循环次数不确定的情况下
补充:goto也可退出循环
break 和 continue 的用法:
break 和 continue 只能用于循环内部(break还可用于多分支选择语句中)。一般情况下,break 和 continue 都是在if(某条件)后执行。
break 退出整个循环(当层),continue 是退出当次循环,后面的继续执行
用于循环和多分支语句:(一般与if连用)
break:结束循环
continue:结束当次循环
gcc -std=c99 *.c //用C99的标准来编译源程序
1)顺序:程序顺序执行(无特别)
2)选择:
1.if系列
if //选择满足条件的,然后做什么
eg:如果变量 a 的值为 3,则将 a 的值改为 5
if(a == 3) //建议写成 if(3 == a)
{
a = 5;
}
if..else //满足条件的做什么,不满足条件的又怎么做
eg:如果变量 a 的值大于 10,将a-1赋给a,否则将 a+1 赋给a
if(a > 10)
{
a = a - 1;
}
else
{
a = a + 1;
}
if..else if.. else if .. else
eg:将成绩(score)在90-100之间的,等级(grade)赋值为‘A’
将成绩在 80-89之间的,等级赋值为 'B'
将成绩在 70-79之间的,等级赋值为 'C'
将成绩在 60-69之间的,等级赋值为 'D'
将成绩在 < 60 的,等级赋值为 'E'
if(score >= 90 && score <= 100)
{
grade = 'A';
}
else if(score >= 80)
{
grade = 'B'
}
else if(score >= 70)
{
grade = 'C'
}
else if(score >= 60)
{
grade = 'D'
}
else
{
grade = 'E'
}
2.switch() //多分支选择语句
case 后面只能是常量和常量表达式。default可以放在任何的地方,
对结果不影响。
eg:
将成绩(score)在90-100之间的,等级(grade)赋值为‘A’
将成绩在 80-89之间的,等级赋值为 'B'
将成绩在 70-79之间的,等级赋值为 'C'
将成绩在 60-69之间的,等级赋值为 'D'
将成绩在 < 60 的,等级赋值为 'E'
switch(score/10)
{
case 10:
case 9: grade = 'A';break;
case 8: grade = 'B';break;
case 7: grade = 'C';break;
case 6: grade = 'D';break;
default: grade = 'E';break;
}
3)循环
while(表达式) 语句;
do{ 语句;}while(表达式);
for:
for(第一个表达式;第二个表达式;第三个表达式) 语句;
(初始化部分;条件判断部分;步进部分)
求1-100的和;
1.while
int sum = 0;
int i = 1;
while(i <= 100)
{
sum = sum + i; //sum += i;
i++;
}
2.do{}while
int sum = 0;
int i = 1;
do
{
sum += i;
i++;
}while(i <= 100);
3.for: for(;;){} //如果语句块中有if语句,效率会降低。
格式:
for(表达式1;表达式2;表达式3){循环体}//表达式2一般是判断
执行顺序:
表达式1->判断表达式2是否为真,若为真,则执行循环体,在执行表达式3,再判断表达式2,若真,继续执行循环体,再执行表达式3,依次类推,直到表达式2为假,则推出循环
int sum = 0;
int i;
for(i=1;i<=100;i++)
{
sum += i;
}
4.goto //C语言中不建议用,实现跳转,程序的可读性会降低
比较:
1)while 和 do..while的比较
当第一次条件为真时,两个没有任何区别。当第一次条件为假时,while的循环体依次都不会执行,但do..while的循环体要执行一次,即do..while的循环体至少执行一次
2)while系列与for的比较
一般情况下:
for循环用于知道循环次数的情况下,而while系列的循环用于循环次数不确定的情况下
补充:goto也可退出循环
break 和 continue 的用法:
break 和 continue 只能用于循环内部(break还可用于多分支选择语句中)。一般情况下,break 和 continue 都是在if(某条件)后执行。
break 退出整个循环(当层),continue 是退出当次循环,后面的继续执行
用于循环和多分支语句:(一般与if连用)
break:结束循环
continue:结束当次循环
gcc -std=c99 *.c //用C99的标准来编译源程序