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

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;
}


Cswitch语句

语句: 

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;
}

Gcontinue语句

作用: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;
}
 

Hbreak语句

作用: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值