写代码的四点:
1.明确需求。要做什么?
2.分析思路。要怎么做?(1,2,3……)
3.确定步骤。每一个思路要用到哪些语句、方法和对象。
4.代码实现。用具体的语言代码将思路实现出来。
学习新技术的四点:
1.该技术是什么?
2.该技术有什么特点?(使用需注意的方面)
3.该技术怎么使用?(写Demo)
4.该技术什么时候用?(在Project中的使用场景 )
----------------------早计划,早准备,早完成。-------------------------
流程控制语句
就是可以控制程序的执行流程的语句,一般包括三大类:
1.判断语句;
2.选择语句;
3.循环语句;
判断语句(IF)
三种格式:
1.if(比较表达式){
语句体;
}
if
(
2
>
1
){
Log.
e
(
"TAG"
,
"true"
)
;
}
执行流程:a:先计算比较表达式的值,看其返回值是true还是false;
b:如果是true,就执行语句体;
c:如果是false,就不执行语句体;
注意事项:a:比较表达式无论简单还是复杂,结果必须是boolean类型;
b:if语句控制的语句体如果是一条语句,大括号可以省略;
如果是多条语句,就不能省略,建议永远不要省略;
2.if(比较表达式){
语句体1;
}else{
语句体2;
}
if
(
2
>
1
){
Log.
e
(
"TAG"
,
"true"
)
;
}
else
{
Log.
e
(
"TAG"
,
"false"
)
;
}
执行流程:a:先计算比较表达式的值,看其返回值是true还是false;
b:如果是true,就执行语句体1;
c:如果是false,就执行语句体2;
3.if(比较表达式1){
语句体1;
}else if(比较表达式2){
语句体2;
}
......
else{
语句体n+1;
}
if
(
2
>
1
){
Log.
e
(
"TAG"
,
"true"
)
;
}
else if
(
1
>
2
){
Log.
e
(
"TAG"
,
"false"
)
;
}
else
{
Log.
e
(
"TAG"
,
"equal"
)
;
}
执行流程:a:
首先计算比较表达式1看其返回值是true还是false;
如果是true,就执行语句体1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false;
b:如果是true,就执行语句体2,if语句结束。
如果是false,接着计算比较表达式3看其返回值是true还是false;
......
c:如果都是false,就执行语句体n+1;
注意事项:
最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示。
选择语句(Switch)
switch语句的格式:
switch(表达式){//表达式可以是基本数据类型中的byte,short,char,int;引用数据类型中的枚举(JDK1.5),String(JDK1.7).
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
......
default:
语句体n+1;
break;
}
switch
(
1
){
case
1
:
Log.
e
(
"TAG"
,
"111"
)
;
break;
case
2
:
Log.
e
(
"TAG"
,
"222"
)
;
break;
default
:
Log.
e
(
"TAG"
,
"000"
)
;
break;
}
执行流程:a:
先计算表达式的值;
b:然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句;
注意事项:a:
case后面只能是常量,不能是变量,而且过个case后面的值不能出现相同的。
b:default可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
c:break最后一个可以省略,其他最好不要省略,否则会出现case穿透现象。最终建议不要省略。
d:default不是一定要在最后,可以是任意位置,但是建议在最后。
e:switch语句的结束条件:
e.1:遇到break就结束了;
e.2:执行到switch的右大括号就结束了;
switch语句有四个特点:
1.
switch语句的类型只有四种:byte、short、int、char;
2.case之间和default没有顺序,先执行第一个 case,没有匹配的case执行default;
3.结束switch语句的两种情况:a:遇到break,b:执行到switch语句结束;
4.如果匹配的case或者default没有对应的break,那么程序将不再判断case,而是会继续向下执行,
运行可以执行的语句,
直到遇到break或者switch结尾结束。
switch语句和if语句的各自使用场景:
1.switch语句建议判断固定值的时候用;
2.if语句建议判断区间或范围的时候用;
if与switch语句很像,如果判断的具体数值不多,而且符合byte short int char这四种类型,
虽然两个语句都可以使用,建议使用switch语句,因为效率更高。
循环语句(for循环、while循环、do-while循环)
当事先不知道要执行多少次程序时就用到了while循环语句。
1.for循环的格式:
for(初始化表达式;条件表达式;循环后的操作表达式){
循环体;
}
for
(
int
i =
0
;
i <
10
;
i++) {
Log.
e
(
"TAG"
,
"+++"
+ i)
;
}
执行流程:a:
执行初始化语句;
b:执行判断条件语句,看其返回值是true还是false;
如果是true,就继续执行;
如果是false,就结束循环;
c:执行循环体语句;
d:执行循环后的操作表达式;
e:回到2继续;
2.while循环的格式:
基本格式:
while(判断条件语句){
循环体语句;
}
完整格式:
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}
int
y =
0
;
while
(y <
10
){
Log.
e
(
"TAG"
,
"---"
+ y)
;
y++
;
}
执行流程:a:
执行初始化语句;
b:执行判断条件语句,看其返回值是true还是false;
如果是true,就继续执行;
如果是false,就结束循环;
c:执行循环体语句;
d:执行控制条件语句;
e:回到2继续。
3.do...while语句的格式:
基本格式:
do{
循环体语句;
}while(判断条件语句)
完整格式:
初始化语句;
do{
循环体语句;
控制条件语句;
}while(判断条件语句)
int
z =
0
;
do
{
Log.
e
(
"TAG"
,
"+++---"
+ z)
;
z++
;
}
while
(z <
10
)
;
执行流程:a:
执行初始化语句;
b:执行循环体语句;
c:执行控制条件语句;
d:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行;
如果是false,就结束循环;
e:回到2继续;
4.break与continue在循环中的使用
break:结束循环语句,不再往下循环;
for
(
int
i =
0
;
i <
10
;
i++) {
Log.
e
(
"TAG"
,
"bbbbbbbbbbbbbbbb"
+ i)
;
if
(i ==
5
){
break;
}
}
continue:结束本次循环,继续下次循环;
for
(
int
i =
0
;
i <
10
;
i++) {
if
(i ==
5
){
continue;
}
Log.
e
(
"TAG"
,
"ccccccccccccccccc"
+ i)
;
}
5.标号在循环中的使用
标记某个循环对其控制,组成其实就是合法的标识符。
a:for(int i = 1; i <= 10; i++){ //a就是标号,是合法的标识符即可
Log.
e
(
"TAG"
,
"iiiiiiiiii="
+ i)
;
for
(
int
p =
1
;
p <=
10
;
p++){
Log.
e
(
"TAG"
,
"ppppppppppp="
+ p)
;
break
a
;
//跳出a循环
}
}