Java基础(2)-数据类型
流程控制
- 我们的程序都是从上往下依次运行的,但是,仅仅是这样还不够,我们需要更加高级的控制语句来帮我进行更灵活的控制。
- 比如,判断用户输入的数字,大于1则输出ok,小于1则输出no,这时我们就需要用到选择结构来帮助我们完成条件的判断和程序的分支走向,之前有接触过语言可以理解的更快
选择结构
- 选择结构包含if和switch类型,选择结构能够帮助我们根据条件判断,再执行哪一块代码。
if语句
就像上面所说,判断用户输入的数字,大于1则输出ok,小于1则输出no,要实现这种效果,我们首先可以采用if语句:
1
2
3
4
5
6if(判断条件){
//判断成功执行的内容
}else{
//判断失败执行的内容
}
//if的内容执行完成后,后面的内容正常执行其中,
else
语句不是必须的。现在,又来了一个新的需求,用户输入的是1打印ok,输入2,打印yes,其他打印no,那么这样就需要我们进行多种条件的判断了,当然if能进行多分支判断:
1
2
3
4
5
6
7if(判断条件1){
//判断成功执行的内容
}else if(判断条件2){
//再次判断,如果判断成功执行的内容
}else{
//上面的都没成功,只能走这里
}同样,
else if
语句不是必须的。现在,又来了一个新的需求,用户输入1之后,在判断用户下一次输入的是什么,如果是1,打印yes,不是就打印no,这样就可以用嵌套if了:
1
2
3
4
5
6
7
8if(判断条件1){
//前提是判断条件1要成功才能进来!
if(判断条件2){
//判断成功执行的内容
}else{
//判断失败执行的内容
}
}
switch语句
我们不难发现,虽然
else-if
能解决多分支判断的问题,但是效率实在是太低了,多分支if采用的是逐级向下判断,显然费时费力,那么有没有一直更专业的解决多分支判断问题的东西呢?1
2
3
4
5
6
7
8
9
10
11switch(判断主体){
case 值1:
//运行xxx
break; //break用于跳出switch语句,不添加会导致程序继续向下运行!
case 值2:
//运行xxx
break;
case 值3:
//运行xxx
break;
}在上述语句中,只有判断主体等于case后面的值时,才会执行case中的语句,同时需要使用break来跳出switch语句,否则会继续向下运行!
为什么switch效率更高呢,因为switch采用二分思想进行查找(这也是为什么switch只能判断值相等的原因),能够更快地找到我们想要的结果!
循环结构
- 小明想向小红表白,于是他在屏幕上打印了520个 “我爱你”,我们用Java该如何实现呢?
for循环
for语句是比较灵活的循环控制语句,一个for语句的定义如下:
1
2
3
4for(初始条件;循环条件;更新){
//循环执行的内容
}
//循环结束后,继续执行初始条件:循环开始时的条件,一般用于定义控制循环的变量。
循环条件:每轮循环开始之前,进行一次判断,如果满足则继续,不满足则结束,要求为boolean变量或是boolean表达式。
更新:每轮循环结束后都会执行的内容,一般写增量表达式。
初始条件、循环条件、更新条件不是缺一不可,甚至可以都缺!
1
2
3for(int i = 0;i < 520;i++){
System.out.println("我爱你");
}1
2
3for(;;){
//这里的内容将会永远地进行下去!
}
while循环
while循环和for循环类似,但是它更加的简单,只需要添加维持循环的判断条件即可!
1
2
3while(循环条件){
//循环执行的内容
}和for一样,每次循环开始,当循环条件不满足时,自动退出!那么有时候我们希望先执行了我们的代码再去判断怎么办呢,我们可以使用do-while语句:
1
2
3do{
//执行内容
}while(循环条件);一定会先执行do里面的内容,再做判断!,所以至少会运行一次
练习
- 九九乘法表
- 1000内水仙花