C/C++教程

c++条件语句——容易忽略的冷知识

本文主要是介绍c++条件语句——容易忽略的冷知识,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 宏定义中包含多条语句,最好使用do…while(0)语句
#define PROCESS do{ cout<<"process"<<endl; cout<<"test" <<endl;}while(0)
2. 逻辑表达式中的短路问题

短路是指并未执行完条件判断语句就结束执行

int m = 10;
int n = 20;
if(m == 10 || n == 11) {} //执行完m==10,不再继续执行n==11
if(m != 10 && n == 20) {} //执行完m!=10,不再继续执行n==20
3. 处理字符的函数集 cctype
函数名称返回值
isalnum()如果参数是字母数字,即字母或数字,该函数返回true
isalpha()如果参数是字母,该函数返回真
isblank()如果参数是空格或水平制表符,该函数返回true
iscntrl()如果参数是控制字符,该函数返回true
isdigit()如果参数是数字(0~9),该函数返回true
isgraph()如果参数是除空格之外的打印字符,该函数返回true,可打印字符指可显式表示的字符
islower()如果参数是小写字母,该函数返回true
isprint()如果参数是打印字符(包括空格),该函数返回true
ispunct()如果参数是标点符号,该函数返回true
isspace() 如果参数是标准空白字符,空白字符是空格(’ ‘),制表符(‘\t’),垂直制表符(‘\v’),回车符(‘\r’),换行符(‘\n’)和进纸符(‘\f’)(也即换页符)的任一种,该函数返回true
isupper()如果参数是大写字母,该函数返回true
isxdigit()如果参数是十六进制的数字,即0~9、a~f、A~F,该函数返回true
tolower()如果参数是大写字符,则返回其小写,否则返回该参数
toupper()如果参数是小写字母,则返回其大写,否则返回该参数
4. ?操作符(包括三元操作符)
    if(m == n)
    {
        s = "m == n";
    }
    else if(m < n)
    {
        s  = "m < n";
    }
    else
    {
        s = "m > n";
    }
    
    s = (m == n)?"m == n":(m < n)?"m < n":"m > n";

	if(m < n)
    {
        if(m == 3)
        {
            int i = 20;
            i++;
            i+=i*i;
            cout << " i = " << i << endl;
            s = "m < n && m == 3";
        }
        else
        {
            s = "m < n && m != 3";
        }
    }
    else
    {
        s = "m >= n";
    }
    int i = 20;
    s = (m < n)?((m == 3)?(i++, i+=i*i,cout << " i = " << i << endl, "m < n && m == 3"):"m < n && m != 3"):"m >= n";
    // ?操作符中不能有变量声明
    
5. switch中表达||
    if(2 == m || 3 == m)
    {
        cout << "abc" << endl;
    }
    switch (m) {
        case 2:
        case 3:
            cout << "abc" << endl;
            break;
        default:
            break;
    }
     return 0;
这篇关于c++条件语句——容易忽略的冷知识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!