• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 详解C++编程中的条件判断语句if-else与switch的用法

详解C++编程中的条件判断语句if-else与switch的用法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++指针详解,c++编程实例详解,c++关键字详解,c++编程实例详解pdf,c++socket编程详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

if-else 语句
控制条件分支。
语法

  if ( expression )
 statement1
[else
 statement2]
</div>

备注
如果 expression 的值不为零,执行 statement1 。如果选项 else 存在,如果 expression 的值为零,执行 statement2。 表达式必须是算术或指针类型,或者必须是定义明确的整型或指针类型转换的类类型。有关转换器的信息,请参见标准转换。
在两个形式的 if 语句和 expression 语句中计算,可以具有除结构以外的任何值,包括所有副作用。除非 statement 中的一个包含 break、 continue 或 goto,控件才能从 if 语句传递到项目中的下一条语句。
if...else 语句的 else 子句与在没有相应的 else 语句的同一范围的最接近的前面 if 语句相关。
为了使此示例可以明确有关 if...else 配对,取消对大括号的注释。

// if_else_statement.cpp
#include <stdio.h>

int main() 
{
 int x = 0;
 if (x == 0)
 {
  printf_s("x is 0!\n");
 }
 else
 {
  printf_s("x is not 0!\n"); // this statement will not be executed
 }

 x = 1;
 if (x == 0)
 {
  printf_s("x is 0!\n"); // this statement will not be executed
 }
 else
 {
  printf_s("x is not 0!\n");
 }

 return 0;
}

</div>

输出:

x 是 0!
x 不是 0!
</div>

switch 语句
允许根据整型表达式的值在多个代码段中进行选择。
语法

 switch ( expression )
case constant-expression : statement
[default : statement]
</div>

备注
expression 必须属于整型或存在到整型的明确转换的类类型。将按照整型提升中所述的方式执行整型提升。
switch 语句体由一系列 case 标签和一个可选 default 标签组成。 case 语句中的两个常量表达式的计算结果不能为同一个值。 default 标签只能出现一次。标记语句不是语法要求,但如果它们不存在,switch 语句是无意义的。默认语句无需显示在末尾;它可以显示在 switch 语句体的任何位置。case 或 default 标签只能显示在 switch 语句内。
每个 case 标签中的 constant-expression 将转换为 expression 类型,并将与 expression 比较是否等效。控制到其 case constant-expression 与 expression 的值匹配的语句的传递。下表中显示了生成的行为。
switch 语句行为

条件 操作
转换后的值与提升的控制表达式的值匹配。转换后的值与提升的控制表达式的值匹配。 控制将转移到跟在该标签后面的语句。
没有常量与 case 标签中的常量匹配;default 标签存在。 控制将转移到 default 标签。
没有常量与 case 标签中的常量匹配;default 标签不存在。 控制将转移到 switch 语句之后的语句。

如果找到匹配的表达式,则后续 case 或 default 标签不会妨碍控制。 break 语句用于停止执行并将控制转移到 switch 语句之后的语句。如果没有 break 语句,则将执行从匹配的 case 标签到 switch 末尾的每个语句,包括 default。例如:

// switch_statement1.cpp
#include <stdio.h>

int main() {
 char *buffer = "Any character stream";
 int capa, lettera, nota;
 char c;
 capa = lettera = nota = 0;

 while ( c = *buffer++ ) // Walks buffer until NULL
 {
  switch ( c )
  {
   case 'A':
   capa++;
   break;
   case 'a':
   lettera++;
   break;
   default:
   nota++;
  }
 }
 printf_s( "\nUppercase a: %d\nLowercase a: %d\nTotal: %d\n",
  capa, lettera, (capa + lettera + nota) );
}

</div>

在上面的示例中,如果 c 是大写 A,则 capa 将递增。 capa++ 之后的 break 语句会终止 switch 语句体的执行并将控制转移到 while 循环。如果没有 break 语句,lettera 和 nota 也将递增。 case 'a' 的 break 语句也能达到类似的目的。如果 c 是小写 a,则 lettera 将递增,并且 break 语句将终止 switch 语句体。如果 c 不是 a 或 A,则将执行 default 语句。
switch 语句的内部块可以包含带有初始化的定义,前提是可以访问到它们 - 即,所有可能的执行路径都不会绕过它们。使用这些声明引入的名称具有局部范围。例如:

// switch_statement2.cpp
// C2360 expected
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
 switch( tolower( *argv[1] ) )
 {
  // Error. Unreachable declaration.
  char szChEntered[] = "Character entered was: ";

 case 'a' :
  {
  // Declaration of szChEntered OK. Local scope.
  char szChEntered[] = "Character entered was: ";
  cout << szChEntered << "a\n";
  }
  break;

 case 'b' :
  // Value of szChEntered undefined.
  cout << szChEntered << "b\n";
  break;

 default:
  // Value of szChEntered undefined.
  cout << szChEntered << "neither a nor b\n";
  break;
 }
}

</div>

switch 语句可以嵌套。在这种情况下,case 或 default 标签将与封装它们的最近的 switch 语句关联。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++的虚析构详解及实例代码
  • C++二分查找(折半查找)算法实例详解
  • C++ 中指针和引用有什么区别详解
  • C++ 中函数重载、覆盖与隐藏详解
  • C++中指针指向二维数组实例详解
  • C++调用Python基础功能实例详解
  • C++中this指针用法详解及实例
  • C++中函数重载实例详解
  • C++中指针和引用的区别详解
  • C++模版函数详解

相关文章

  • 2017-05-28C++实现的归并排序算法详解
  • 2017-05-28C++不使用变量求字符串长度strlen函数的实现方法
  • 2017-05-28C++编程小心指针被delete两次
  • 2017-05-28MFC程序设计常用技巧汇总
  • 2017-10-15ST17H26移植软时钟代码
  • 2017-05-28C语言模拟实现C++的继承与多态示例
  • 2017-05-28C语言实现去除字符串中空格的简单实例
  • 2017-05-28C/C++实现字符串模糊匹配
  • 2017-05-28C++中用new创建二维数组和指针数组实例代码
  • 2017-05-28如何在C++中实现按位存取

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • VC中使用ADO开发数据库应用程序简明教程
    • 深入解析C++中派生类的构造函数
    • c语言随机数函数示例
    • C语言标识符、关键字、注释、表达式和语句
    • C++实现DES加密算法实例解析
    • 用C语言判断一个二叉树是否为另一个的子结构
    • typedef和#define的用法以及区别
    • C++进程间共享数据实例
    • 解析c++中的默认operator=操作的详解
    • C++ explicit构造函数实例解析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有