关系,逻辑表达式
1.关系表达式:表达式 关系运算符 表达式
;
ps:算术运算符优先级高于关系运算符
2.逻辑表达式:! (逻辑非) && (逻辑与) ||(逻辑或)
短路求值:按优先级顺序,当逻辑运算符一边表达式的值可以确定逻辑运算符的值时,将不再进行另一边的表达式运算。
ex:(x ! = 0 )&&(y = 6)
当x值为0时,将不进行y=6的赋值运算。
if语句
1.格式:
if (true) 语句
if (true) 语句 else 语句
在条件后面加上分号,编译器会认为if(条件)是一个单独的语句,then子句为空且没有else子句。
2.嵌套
if (true)
{
}
else if (true)
{
}
else if (true)
{
.......
3.条件表达式
(条件) ? 表达式1 :表达式2;//条件为true,将表达式1的值作为整个表达式的值;条件为false,将表达式2的值作为整个表达式的值
使用条件表达式应注意运算符的优先级。
switch
switch (控制表达式){
case 常量表达式1 : 语句1;
case 常量表达式2 : 语句2;
.
.
.
default : 语句n+1;
}
//当控制表达式值等于常量表达式k的值时,执行语句k至语句n+1;
//case后表达式不可包含变量;
for
for(语句1;语句2;语句3){
循环体;
}
//语句1:初始语句
//语句2:条件判断语句
//语句3:循环体结束后,语句2前执行
//for循环从语句1->执行循环体->执行语句3->语句2判断->执行循环体->语句3->循环体->...
//循环体里的语句一次完全的执行称为一个循环周期
2.for循环嵌套
略
3.C++11
for(int i : {1,2,3,4,5}){
...
...
}
//该循环依次遍历后面列表中的每一个值,并执行一个循环周期;
while() dowhile()
while(true){
循环体
}
//while循环在每个循环周期前进行判断,条件为true则执行循环体,直至条件为false
do{
循环体
}while(true);
//先执行一个循环周期,再进行判断,条件为true则执行循环体,直至条件为false
//while后面有分号;
break continue
break:跳出当前循环,break仅跳出当前的一个循环结构
continue:跳出当前循环的循环体,进行条件判断
枚举法
按某种顺序逐一枚举求解
贪婪法
贪婪法是将每一阶段的最优解合成整个过程的一个全局解;不一定能得到整个过程的最优解。
PS
循环变量是记录循环执行的,循环变量不应该在循环中被修改,因此尽量避免循环变量参与循环体。
优化嵌套循环有利于提高程序运行效率。