您的位置: 首页 N搜咨询 文章阅读 C语言初学者入门讲座 第八讲 转移…
打印本页 放大字体 关闭本页
C语言初学者入门讲座 第八讲 转移语句

作者:N搜网友 编辑:N搜网 录入:N搜网 来源:N搜网络
录入时间:2006-8-17 更新时间:2006-8-17 点击次数:587
主标题:C语言初学者入门讲座 第八讲 转移语句
副标题:C语言初学者入门讲座 第八讲 转移语句
短标题:C语言初学者入门讲座 第八讲 转移语句
 
   程序中的语句通常总是按顺序方向, 或按语句功能所定义的方向执行的。如果需要改变程序的正常流向, 可以使用本小节介绍的转移语句。在C语言中提供了4种转移语句:
  goto,break, continue和return。
  其中的return语句只能出现在被调函数中, 用于返回主调函数,我们将在函数一章中具体介绍。 本小节介绍前三种转移语句。
  1.goto语句
  goto语句也称为无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。
  如: label: i++;
  loop: while(x<7);
  C语言不限制程序中使用标号的次数,但各标号不得重名。goto语句的语义是改变程序流向, 转去执行语句标号所标识的语句。
  goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。
  但是,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。
  统计从键盘输入一行字符的个数。
  #include"stdio.h"
  void main(){
  int n=0;
  printf("input a string\n");
  loop: if(getchar()!='\n')
   {
  n++;
  goto loop;
   }
   printf("%d",n);
  } int n=0;
  printf("input a string\n");
  loop: if(getchar()!='\n')
  {
   n++;
   goto loop;
  }
  printf("%d",n); 
  本例用if语句和goto语句构成循环结构。当输入字符不为'\n'时即执行n++进行计数,然后转移至if语句循环执行。直至输入字符为'\n'才停止循环。
  break语句
  break语句只能用在switch 语句或循环语句中, 其作用是跳出switch语句或跳出本层循环,转去执行后面的程序。由于break语句的转移方向是明确的,所以不需要语句标号与之配合。break语句的一般形式为: break; 上面例题中分别在switch语句和for语句中使用了break 语句作为跳转。使用break语句可以使循环语句有多个出口,在一些场合下使编程更加灵活、方便。
  continue语句
  continue语句只能用在循环体中,其一般格式是:
  continue;
  其语义是:结束本次循环,即不再执行循环体中continue 语句之后的语句,转入下一次循环条件的判断与执行。应注意的是, 本语句只结束本层本次的循环,并不跳出循环。
  void main(){
   int n;
   for(n=7;n<=100;n++)
   {
  if (n%7!=0)
  continue;
  printf("%d ",n);
   }
  }
  输出100以内能被7整除的数。
  int n;
  for(n=7;n<=100;n++)
  {
   if (n%7!=0)
  continue;
   printf("%d ",n);
  }
  本例中,对7~100的每一个数进行测试,如该数不能被7整除,即模运算不为0,则由continus语句转去下一次循环。只有模运算为0时,才能执行后面的printf语句,输出能被7整除的数。
  #include"stdio.h"
  void main(){
   char a,b;
   printf("input a string:\n");
   b=getchar();
   while((a=getchar())!='\n'){
  if(a==b){
  printf("same character\n");
  break;
  }b=a;
   }
  }
  检查输入的一行中有无相邻两字符相同。
  char a,b;
  printf("input a string:\n");
  b=getchar();
  while((a=getchar())!='\n'){
   if(a==b){
  printf("same character\n");
  break;
   }b=a;
  }
  本例程序中,把第一个读入的字符送入b。然后进入循环,把下一字符读入a,比较a,b是否相等,若相等则输出提示串并中止循环,若不相等则把a中的字符赋予b,输入下一次循环。
  输出100以内的素数。素数是只能被1 和本身整除的数。可用穷举法来判断一个数是否是素数。
  void main(){
   int n,i;
   for(n=2;n<=100;n++){
  for(i=2;i<n;i++)
  if(n%i==0) break;
  if(i>=n) printf("\t%d",n);
  }
   } int n,i;
   for(n=2;n<=100;n++){
  for(i=2;i<n;i++)
  if(n%i==0) break;
  if(i>=n) printf("\t%d",n);
  }
  本例程序中,第一层循环表示对1~100这100个数逐个判断是否是素数,共循环100次,在第二层循环中则对数n用2~n-1逐个去除,若某次除尽则跳出该层循环,说明不是素数。 如果在所有的数都是未除尽的情况下结束循环,则为素数,此时有i>=n, 故可经此判断后输出素数。然后转入下一次大循环。实际上,2以上的所有偶数均不是素数,因此可以使循环变量的步长值改为2,即每次增加2,此外只需对数n用2~n去除就可判断该数是否素数。这样将大大减少循环次数,减少程序运行时间。
  #include"math.h"
  void main(){
   int n,i,k;
   for(n=2;n<=100;n+=2){
  k=sqrt(n);
  for(i=2;i<k;i++)
  if(n%i==0) break;
  if(i>=k) printf("\t%2d",n);
   }
  }
  [N搜网-中国网上商店商品服务搜索门户]:[本文章由N搜网于2006-8-17录入系统,网址:www.nsall.com

打印本页 放大字体 关闭本页
 
 
相关主题文章
C++中的const限定修饰符 C++中的虚函数(virtual function)
C++中确定基类有虚析构函数 C++中用vectors改进内存的再分配
C++中用函数模板实现和优化抽象操作 CBuilder中帮助文件的连接及显示讨论
CRC循环校验的具体算法 C标准中一些预定义的宏
C程式中关于整数储存的说明 C数值计算程序移植到VC开发环境
C语言初学者入门讲座 第八讲 转移语句 C语言初学者入门讲座 第二讲 数据类型(1)
C语言初学者入门讲座 第二讲 数据类型(2) C语言初学者入门讲座 第二讲 数据类型(3)
C语言初学者入门讲座 第九讲 数组(1) C语言初学者入门讲座 第九讲 数组(2)
C语言初学者入门讲座 第六讲 分支结构(1) C语言初学者入门讲座 第六讲 分支结构(2)
C语言初学者入门讲座 第七讲 循环结构 C语言初学者入门讲座 第三讲 基础语句
C语言初学者入门讲座 第十二讲 结构(1) C语言初学者入门讲座 第十二讲 结构(2)
C语言初学者入门讲座 第十二讲 结构(3) C语言初学者入门讲座 第十讲 函数(1)
C语言初学者入门讲座 第十讲 函数(2) C语言初学者入门讲座 第十讲 函数(3)
C语言初学者入门讲座 第十讲 函数(4) C语言初学者入门讲座 第十六讲 文件(1)
C语言初学者入门讲座 第十六讲 文件(2) C语言初学者入门讲座 第十三讲 联合
C语言初学者入门讲座 第十四讲 枚举与位运算(1) SNMP用VC++6.0实现的方法
XML在系统日志设计中的运用 利用VC++编写Windows95的CPL组件
利用VC++开发所见即所得的打印程序 利用VB自制OCX控件
利用Visual Basic 实现无线通讯 利用VC实现AVI文件的图像截取
利用VB实现宽行打印的一个技巧 调试Release版本应用程序
利用VC++编程实现程序自动启动 利用VB制作MP3播放列表
利用VC++开发ASP图像处理组件 利用VC++获取异构型数据库库结构信息
如何在ASP.Net 中把图片存入数据库 用TAPI为掌上电脑开发通讯应用程序
让窗口一直在上面 通过DELPHI小程序在WINDOWS下更好地使用DOS批处理…
用ASP实现的2000年倒记时程序 在vb组件内调用excel2000实现GIF饼图
用VB编写接近实际的抽奖程序 微软风格的Explore
在 C# 中使用画笔 用VB6分离出文本框的单词
如何拦截键盘输入 在VB5.0下有效控制鼠标的输入焦点
用VB5创建B/S程序 在ASP中用“正则表达式对象”来校验数据的合法性…
用VB实现局域网屏幕监视 用ASP实现网上考试系统
在ASP中利用“正则表达式” 对象实现UBB风格… [组图] 用Excel的宏编制个人证券账户管理器
用Powerbuilder进行分布式应用开发三级体系结构 在Asp.Net中从sqlserver检索(retrieve)图片
论游戏中的搜索问题(初级篇) 用VB调试串口通讯
使用API创建窗体(类似VC的创建过程) 用Delphi做一个OpenGL控件
如何在程序中使用自己的库单元 消息队列在VB.NET数据库开发中的应用
在VFP5.0中实现中英文自动切换 在BCB下使用GExperts的Debug功能
用FoxWeb在网上快速发布你的FOXPRO数据库 用VB6.0设计一个打字练习软件
在VFP中实现跟变式组合框及椭圆图形菜单 用Delphi合并Word表格中单元格
用BCB实现超星格式转换为BMP格式 拼图游戏的算法
在拷贝、删除文件时显示飞行的文件夹动画 在PB中如何使用Microsoft Outlook发送邮件
在PowerBuilder中调用ChooseColor函数 一个简单的MP3播放器
如何用pb实现MSACCESS数据库的图片字段存取 在C++Builder中使用Compress Html Help
压缩HTMl文件 在powerbuilder中向Excel传递数据
人民币大小写转换算法 在PB中应用灵活多样的排序
如何在程序启动默认浏览器与电子邮件系统 用C#编写获取远程IP,MAC的方法
用API实现在MSN的信息提示 真正意义上的前台窗口切换
如何在ASP程序中打印Access报表 如何在Windows应用程序中实现电子注册功能
上楼梯算法的java实现 实时曲线的绘制和保存
用Vb.net实现自定义界面 刘徽《九章算术》中的勾股数
ASCII码表 水仙花数
 
 
 
本站关键字:网上商店商品服务大全 网上购物导航 在线购物搜索引擎 网店比较购物 网络商城 特色网上超市商店 网上网络开店购物