一、流程控制结构
1.顺序结构
绝大部分代码都是按照从上往下,从左往右依次执行
2.选择结构
2.1 if语句
if语句的格式1:
if(表达式){
语句体;}
执行流程:
先去计算if语句的表达式的值,如果值是true,就执行语句体,执行完语句体if语句整体结束。
如果值是false,就跳过if语句不执行。
if语句格式2:
if(表达式){
语句体1;
}else{
语句体2;}
执行流程:
计算出表达式的值,如果是true就执行语句体1,if语句结束。
如果值是false就执行语句体2,if语句结束。
if语句格式2和三目的关系:
只有if语句有返回值时才和三目运算符等效
if语句格式3:
if(表达式1){
语句体1;
}else if(表达式2){
语句体2;
}else if(表达式3){
语句体3;
}
…
else{
语句体n+1;}
执行流程:
计算表达式1的值,如果是true就执行语句体1,if语句结束
如果是false就计算表达式2,如果值为true就执行语句体2,if语句结束。
如果是false就计算表达式3,如果值是true就执行语句体3,if语句结束。
如果所有的表达式都是false就执行语句体n+1,if1语句结束。
2.2 switch语句
switch语句
格式
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
…
default:
语句体n+1;
break;
}
执行流程:
先去计算表达式的值,拿这个值和所有的case值进行比较,如果有相等的case值就会执行对应的语句体接着执行break,switch语句结束。如果所有的case值比较都不相等就执行语句体n+1接着执行break,switch语句结束
注意:
1.switch语句的表达式支持byte、short、int、char,从jdk1.5开始支持枚举类型,从jdk1.7开始支持String类型
2.case值是常量且不能重复
3.java支省略break,出现case穿透效果(月份返回季节?)
4.java支持省略default(选择题)
5.结束的标志:1.遇见break结束、2.执行到代码最后一行
3.循环结构
for循环、while循环、dowhile循环
3.1 for循环
/*
for循环
格式
for(初始值;判断条件;控制条件){
循环体;
}
执行流程:
先去计算初始值,拿着初始值和判断条件进行比较,如果是true,接着执行循环体,拿着初始值执行控制条件改变初始值,拿着改变之后的初始值和判断条件进行比较,如果还是true重复上述操作。知道比较的值为false,for循环结束了
3.2 while循环
while循环格式
初始值
while(判断条件){
循环体;
控制条件;
}
执行流程:
先去计算初始值,拿着初始值和判断条件进行比较,如果是true,接着执行循环体,拿着初始值执行控制条件改变初始值,拿着改变之后的初始值和判断条件进行比较,如果还是true重复上述操作。知道比较的值为false,while循环结束了
3.3 dowhile循环
dowhile循环格式
初始值;
do{
循环体;
控制条件;
}while(判断条件);
执行流程:
计算初始值,执行循环体,执行控制条件,拿着改变之后的初始值和判断条件进行比较如果是true接着执行循环体,执行控制条件,再拿改变之后的初始值和判断条件进行比较如果是true重复上述操作直到比较结果为false时循环结束
第一个:for循环 第二个:while循环 第三个: dowhile
3.4 三种循环的区别和联系
a.优先选择for循环,其次是while循环
b.dowhile循环最少执行一次
c.死循环
d.for循环的初始值在for执行完毕之后不能使用
e.三种循环可以等效转换
二、练习
1.for循环表白程序
```java
/**
*写来哄老婆开心的
* 总共分为4部分
* 第一部分为心得前三行
* 第二部分为心得中间三行
* 第三部分为第7-倒数第二行
* 最后一部分为最后一行
* @author XuTianYi
*
*/
public class Love {
public static void main(String[] args) {
for(int i = 0,j=0;i <=13 ;i++){
if(i<3){
for(j=0;j<5-2*i;j++){
System.out.print(" ");
}
if(i<2){
for(j=0;j<6+i*4;j++){
System.out.print('*');
}
for(j=0;j<7-i*4;j++){
System.out.print(' ');
}
for(j=0;j<6+i*4;j++){
System.out.print('*');
}
}else{
for(j=0;j<13;j++){
System.out.print('*');
}
System.out.print(' ');
for(j=0;j<13;j++){
System.out.print('*');
}
}
}//上部分 前三行
if(i==3||i==4||i==5){
for(int c=0;c<29;c++){
System.out.print('*');
}
}//中间三行
else if(i>5&&i<=12){
for(j=0;j<1+2*(i-6);j++){
System.out.print(' ');
}
for(j=0;j<27-4*(i-6);j++){
System.out.print('*');
}//7-13行
}
if(i==13){
for(j=0;j<14;j++){
System.out.print(' ');
}
System.out.print('*');
}
System.out.println();//最终换行
}
}
}
输出的结果是心形,小伙伴们自行尝试 ,去和心爱的女生表白吧!这 或许就是程序员的浪漫吧~
2.打印99乘法表
这个小伙伴们自行尝试,当做课后作业,代码就不公布了。要多学多练多操作。