您的位置:首页 > 编程语言 > C语言/C++

C语言第八回合:分支、循环和跳转

2014-11-18 14:49 435 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: