位运算符
<< 左移 -- 相当于乘以2的指定次幂
>> 右移 -- 相当于除以2的指定次幂
>>> 无符号右移 -- 正数
面试题: 最有效率的方式计算 3乘以8 -- 3 << 3
& 有0则0,全1才1
| 有1则1,全0才0
^ 相同为0,不同为1
~ 所有的1变0,0变1.
if语句
1)
if(条件表达式)
{
// 执行语句
}
2)
if(条件表达式)
{
// 为真,执行语句
}
else
{
// 为假,走这.
}
3)
if(条件表达式)
{
// 执行语句
}
else if (条件表达式)
{
// 执行语句
}
...
else
{
// 执行语句
}
注意:
else后面是不跟条件表达式的.
最后的else可以省略,具体根据业务逻辑来决定.
if...else if...else if... else 这种格式执行特点:一旦有一个匹配,if语句结束,其他的不走了.
switch语句
格式:
switch(表达式)
{
case 匹配条件1:
// 执行语句1;
break;
case 匹配条件2:
// 执行语句2;'
break;
...
default:
// 执行语句;
break;
}
注意:
switch语句执行流程:自上而下,一次匹配每一个case,如果匹配,执行该case下的语句.
如果所有case不匹配,执行default.
switch语句的结束条件: 遇到break或者执行到语句末尾.
2.java循环:
for
while
do...while
注意:循环语句减少重复代码是提高了代码的开发(或者说编写)效率,而非程序的执行效率.
3. for循环
格式:
for (初始化表达式; 判断语句; 控制条件)
{
// 循环体
}
执行流程:
A:先执行初始化表达式。
B:执行判断条件。
C:根据判断条件的返回值
如果true,执行循环体。
如果false,for循环结束。
D:执行控制条件,接着返回B。
4. 定义变量注意问题.
使变量的声明周期尽量短.(前提是必须满足业务需求的情况下.)
5. while循环
格式:
//初始化表达式
while (判断条件)
{
// 循环体
// 控制条件
}
while循环和for可以等价转换。
区别:
初始化条件的变量在for结束,以后是不能使用的。
而while结束后是可以使用的。
如果这个变量仅仅是控制次数的,建议使用for循环。
因为这样,for结束,这个变量就结束,效率高。
什么时候用for,什么时候用while?
如果是控制范围,最好用for。
如果范围不明确,用while。
6. do...while 循环
格式:
// 初始化表达式
do{
// 循环体
// 控制语句
} while (判断条件);
do...while循环和其他两种循环的区别是:
do...while至少执行一次。
其他的两种循环可能一次都不执行。
所以如果明确某个重复的动作要必须先做一次,可以使用do...while循环.
练习: 求1-100之间(不含100)的偶数和(5-8分钟)
打印出所有的"水仙花数"。
所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:
153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
提示:
1:采用循环取得所有的三位数。(三位数指的是100-999之间的数)。
2:把每个三位数的个位,十位,百位进行分解。
获取一个整数每一位值的方法
int x = 67890;
个位: x / 10^0 % 10;
十位: x / 10^1 % 10;
百位: x / 10^2 % 10;
....
7. 循环嵌套
双层:
外循环控制行,内循环控制列.
注意事项: 外循环和内循环的循环变量不能一样.
8. 正三角形和倒三角形小练习
正:
外循环不变,内循环的判断条件是改变的. -- 依次增加
倒:
外循环不变,内循环的初始化值发生改变你. -- 依此增加
9. 99乘法表
制表符 "\t"
回车换行符要根据不同的系统而定:
windows "\r\n"
linux "\n"
mac "\r"
10. break 和 continue
功能:
用来中断或者跳出循环.
break -- 结束当前循环. 还可以用在switch语句中.
continue -- 结束本次循环,进入下次循环.
一般这两个关键字都是与判断语句一起使用,满足某种条件时执行相应的结束或进入下次的操作.
11. 使用标号结束多层循环.
定义一个标号, 在使用break和continue的时候,后面跟上这个标号就可以了.
例如:在for的前面定义一个标记A,在多层for循环中如果有满足条件的时候,就可以使用break A直接跳出多层循环。 |
|