Pascal 转 C++ 教程2

Pascal 转 C++ 教程2

转自 https://blog.wind-flower.cn/2018/08/07/%E6%95%99%E7%A8%8B2/

C++ 分支、循环、函数

C++ 中可以使用万能头文件 #include <\bits/stdc++.h>

分支

if语句

C++中if语句的用法和Pascal基本类似,但主要有三个不同点:进行判断的条件表达式一定要用圆括号包上、条件表达式后面没有then、else前单独的语句后要加分号。

    if (a == b)  // 这里没有then
       printf("a equals b\n");  // 这里有分号
    else
       printf("a does not equal b\n");

和Pascal中一样,else子句是可选的,如果if子句或else子句中需要执行多条语句,需要用大括号包住。

    if (a == b) printf("a equals b\n");
    bool flag;
    if (a == b) {
       flag = true;
       printf("a equals b\n");
    } else {
       flag = false;
       printf("a does not equal b\n");
    }
条件表达式

条件表达式中使用&&(and)、||(or)和!(not) 的方法和Pascal中基本类型。需要注意&&和||的优先级比<、>、<=、>=、==、!=都要低,因此可以直接这样写:
if (a <= b && b <= c)
在&&和||中,&&优先级较高,也就是说
(a <= b || b <= c && b <= d)
等价于
(a <= b || (b <= c && b <= d))
需要注意!运算符的优先级很高,要适当加入括号,例如if (! (a == b))就等价于if (a != b)
还有bool类型的变量可以直接用于条件判断,无需用==运算符判断,例如flag是bool类型的变量时,直接就可以写if (flag)if (! flag)
C++中任何表达式都可以被转换成bool类型进行逻辑判断,只有0表示false,其他值都表示true。
这样的话,if (x)就等价于if (x != 0)
习惯于写Pascal程序的话,开始写C++程序时常常会犯这样的错误:if (a = b)。这样的语句是能够编译通过并执行的,它的逻辑是a=b这样的赋值表达式是有返回值的,返回值为a(或b)的值,然后再转换成bool类型进行逻辑判断。也就是说,这个if语句等价于先将b赋值给a,再判断a是否等于0,不等于0的话执行if子句中的内容。在编译的时候加上-Wall参数,有的编译器会对这样的用法给出警告信息。

switch语句

switch语句类似Pascal中的case语句。被switch的类型只能是整数类型、字符型或枚举类型。

    int x;
    scanf("%d", &x);
    switch (x) {
       case 0:
           printf("x is 0\n");
           break;
       case 1:
           printf("x is 1\n");
           break;
       case 2:
           printf("x is 2\n");
           break;
       default:
           printf("x is other value\n"
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值