C语言第八回合:分支、循环和跳转
【学习目标】
1. 分支结构
2. 循环结构
A:if语句
格式:
if( expression ) //如果表达式为真就执行
statement
例
//简单语句
if( score>= 100 )//如果score>100时,打印 "Good"
{
printf("Good\n" );
}
//复杂语句
if( num< 5 )
{
num++;
printf("%d太小了\n", num );
}
//注意:即使if中使用了复杂语句,整个if结构仍将看作一个简单语句.
B: if….else 语句
语法:
(1)
if(表达式)
{
语句块1;
}
else //表达式假时
{
语句块2;
}
作用:如果表达式为真,就执行语句块1;反之执行语句块2。
(2)
if(表达式1)
{
语句块1;
}
else if(表达式2)
{
语句块2;
}
else
{
语句块3;
}
作用:如果表达式1不为真,执行语句块1;表达式1不为真,但表达式2为真,就执行表达式2;反之,就执行表达式3。
PS:
当然if…..else还可以嵌套使用。但是的特别小心!
C语言有这样的规定:else始终与同一括号内最近的未匹配的if语句结合。虽然老手可以区分出来,但这样的代码谁都会头疼的,任何时候都别偷这种懒。关于程序中的分界符'{'和'}' 。
//if--else语句的使用
#include <stdio.h>
int main( void )
{
int num;
printf( "输入一个数: ");
scanf( "%d",&num );
if( num>= 100 )
{
printf( "您输入的shu: %d>100.\n ", num );
}
else if( num> 50 )
{
printf( "您输入的数:50<= %d< 100 \n", num );
}
else if( num>= 0 )
{
printf( "您输入的数: 0=<%d <50 \n", num );
}
else
{
printf( "您输入的数:%d<0\n", num );
}
return 0;
}
C:switch语句
语句:
switch(表达式)
{
case 常量表达式1:
{
语句1
break;
}
case 常量表达式2:
{
语句2
break;
}
case 常量表达式3:
{
语句3
break;
}
……..//等等
default:
{
语句N+1;
break;
}
}
注意事项:
(1)case后面只能是整型或字符型的常量或常量表达式
(2)每个case的常量表达式必须互不相同,否则会出错的。
(3)当case后的常量表达式与switch后的表达式相同时,就执行case后的语句块;反之,就执行default后的语句。
(4)各个case与default的顺序不会影响执行结果。
//switch语句事例
#include <stdio.h>
#include <ctype.h> //for toupper()
int main( void )
{
char letter;
printf("\t*******游戏王**********\n\n" );
printf("\t S: 进入游戏.\n" );
printf("\t H: 游戏帮助.\n" );
printf("\t Q: 退出游戏.\n\n" );
printf("\t 输入您的选择(不区分大小写): " );
scanf("%c", &letter );
letter=toupper( letter ); //把字母转化为大写字母
printf("\n\n" );
switch(letter )
{
case 'S':
{
printf( "\t 欢迎进入游戏王的世界\n");
break; //注意,这里一定要有break语句,否则会出错
}
case'H':
{
printf("\t 请问您有什么需要帮忙?\n" );
break;
}
case'Q':
{
printf("\t 您已经退出了游戏!!!\n" );
break;
}
default:
{
printf("\t Sorry,您的选择有误,请再次输入...\n" );
break;
}
}//end of switch
return 0;
}
运行结果:
D: while语句
语法:
while(表达式)
{
循环体;
}
作用:表达式为真时,就执行循环语句,直到循环语句结束或遇到break语句。
//while循环的使用
#include <stdio.h>
int main( void )
{
intscore[ 10 ]= { 60, 70, 90, 88, 82, 78, 87, 98, 90, 100 };
inti= 0;
while(i< 10 ) //当条件满足,就进入循环,否则退出
{
printf("%d ", score[ i ] );
i++; //i= i+ 1,这样可以打印score下一个元素
}
putchar( '\n' ); //或则 printf("\n" );表示换行
return0;
}
E: do……while 语句
语法:
do
{
//循环体
}while;
PS: 此循环和while循环类似,但do……while循环至少执行一次循环体,然而while循环可以一次也不循环。
//do---while循环的使用
#include<stdio.h>
int main(void )
{
int score[ 10 ]= { 60, 70, 90, 88, 82,78, 87, 98, 90, 100 };
int i= 0;
do //不论条件满不满足,do-while循环至少执行一次。
{
printf( "%d ", score[ i] );
i++; //i自加,这样可以打印score的下一个元素
}while( i< 10 ); //注意这里结尾处必须有';'(分号)。当条件满足,继续执行
putchar( '\n' ); //或则 printf("\n" );表示换行
return 0;
}
F: for循环语句
语法:
for(表达式1;表达式2;表达式3)
{
//循环体;
}
PS: 开始时就执行表达式1,再执行表达式2,如果表达式2为真,则就执行循环体和表达式3,接着在执行表达式2是否为真……
//for循环的使用
#include <stdio.h>
int main( void )
{
intscore[ 10 ]= { 60, 70, 90, 88, 82, 78, 87, 98, 90, 100 };
inti= 0;
for(i= 0; i< 10; i++ ) //使用for语句打印score数组中所有的元素
{
printf("%d ", score[ i ] );
}
putchar( '\n' ); //或则 printf( "\n");表示换行
return0;
}
G:continue语句
作用:continue表示终止本次(本轮)循环
//功能:跳过制表符(tab键),当遇到换行符时退出
#include <stdio.h>
int main( void )
{
char ch;
while( (ch= getchar())!='\n' )
{
if( ch== '\t' )
continue; //当ch=='\t'时,跳过putchar(),不打印
putchar( ch );
}
return 0;
}
H:break语句
作用:break是关键字,表示终止本层循环。
//break使用事例
//功能:当遇到空格(' ')时退出
#include <stdio.h>
int main( void )
{
char ch;
while( (ch= getchar())!='\n' )
{
if( ch== ' ' )
break; //当ch==' '时,结束循环
putchar( ch );
}
return 0;
}
【指尖的微笑】错误在所难免,希望得到大家的指正^-^
转载时保留原文的链接http://oursharingclub.joinbbs.net/和http://blog.csdn.net/mirrorsbeyourself