概述
Talk is cheap, show me the code.
switch的所有case后都必须是常量,不能是变量。switch如果有多个case执行相同语句,每个判断的case都应该保留:
switch (a) {
case 1:
case 2:
a *= 2;
break;
case 3:
a *= 3;
}变量定义的作用域只限于它所在的块内。
注意do{}while(condition);后面是由分号的。
注意在for循环中初始化语句如果定义两个变量的类型相同,只写一个变量类型即可,否则可能报错:
for(int i = 0, int j = 0; i < 2 && j < 2; ++i, ++j){} //g++报错j qualified-id,去掉j前面的int即可
常见的调试技术:NDEBUG预处理变量,assert预处理宏。
NDEBUG预处理变量:通过预处理语句#ifndef NDEBUG #ifdef NDEBUG #endif等之类进行分支判断,调试不同的语句,而NDEBUG是否预定义可以通过编译命令添加,比如g++ -DNDEBUG main.c -o main。
assert预处理宏:首先需要包含cassert头文件,再需要判断的地方加上assert(statement);语句,如果没有定义NDEBUG变量,statement为true,则输出信息终止程序运行,如果statement为false,则继续执行程序。C++的异常处理机制try-catch和java类似,头文件stdexcept定义了一些常见的异常类型,比如runtime_error,必须通过字符串来实例化传递错误信息,catch捕捉到错误后通过what()函数打印出抛出的错误信息。
#include <stdexcept>
try {
throw runtime_error("hello");
} catch (runtime_error err) {
cout << err.what() << endl;
} catch (exception err) {
cout << err.what() << endl;
}
最后
以上就是优美大门为你收集整理的C++primer第4版第五章第六章表达式和语句的全部内容,希望文章能够帮你解决C++primer第4版第五章第六章表达式和语句所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复