科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件C++程序设计从零开始之语句 (4)

C++程序设计从零开始之语句 (4)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

C++程序设计从零开始之语句

作者:chuiyun 来源:BLOG 2007年10月28日

关键字: 设计 C++ Linux

  • 评论
  • 分享微博
  • 分享邮件

判断语句——if else、switch

if else 前面说过了,为了实现“什么样的情况”做“什么样的动作”,故C++非常正常地提供了条件判断语句以实现条件的不同而执行不同的代码。if else的格式为:

if(<数字>)<语句1>else<语句2> 或者 if(<数字>)<语句1>
long a = 0, b = 1;
P1:
a++;
b *= a;
if( a < 10 )
goto P1;
long c = b;

上面的代码就表示只有当a的值小于10时,才跳转到P1以重复执行,最后的效果就是c的值为10的阶乘。

上面的<数字>表示可以在“if”后的括号中放一数字,即表达式,而当此数字的值非零时,即逻辑真,程序跳转以执行<语句1>,如果为零,即逻辑假,则执行<语句2>。即也可如此:if( a – 10 ) goto P1;,其表示当a – 10不为零时才执行goto P1;。这和前面的效果一样,虽然最后c仍然是10的阶乘,但意义不同,代码的可读性下降,除非出于效率的考虑,不推荐如此书写代码。

而<语句1>和<语句2>由于是语句,也就可以放任何是语句的东西,因此也可以这样:

if( a ) long c;

上面可谓吃饱了撑了,在此只是为了说明<语句1>实际可以放任何是语句的东西,但由于前面已经说过,标号的定义以及注释语句和预编译语句其实都不是语句,因此下面试图当a非零时,定义标号P2和当a为零时书写注释“错误!”的意图是错误的:

if( a ) P2: 或者 if( !a ) // 错误!
a++; a++;

但编译器不会报错,因为前者实际是当a非零时,将a自增一;后者实际是当a为零时,将a自增一。还应注意,由于复合语句也是语句,因此:

if( a ){
 long c = 0;
 c++;
}

由于使用了复合语句,因此这个判断语句并不是以“;”结尾,但它依旧是一个单句,即:

if( a )
if( a < 10 ) { long c = 0; c++; }
else
b *= a;

查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章