1.概述:程序执行过程中,各条语句的执行顺序对程序的结果是有影响的。所以我们需要清楚每条语句的执行流程。
2.三种结构:
2.1:顺序结构 根据编写的顺序,从上到下运行
2.2:判断结构
2.3:循环结构
2.1 顺序结构
public class DemoSequence {
public static void main(String[] args) {
System.out.println("我走第一步后执行第二步");
System.out.println("我走第二步后执行第三步");
System.out.println("我走第三步后结束");
}
}
2.2 判断语句
2.2.1 选择结构--if
1. 单if语句
if(关系表达式){
语句体;
}
流程图:
代码示例:
public class DemoIf {
public static void main(String[] args) {
int price =18;
System.out.println("今天去市场买菜,正在跟老板讨价");
System.out.println("你:老板,这条鱼20块卖不卖");
if(price <=20){
System.out.println("老板:行嘞,那就20卖给您");
}
System.out.println("你:拿鱼回家做饭");
}
}
2. if...else语句
if(关系表达式){
语句体1;
}else {
语句体2;
}
流程图:
代码示例:
public class DemoIf {
public static void main(String[] args) {
int price =25;
System.out.println("今天去市场买菜,正在跟老板讨价");
System.out.println("你:老板,这条鱼20块卖不卖");
if (price <=20) {
System.out.println("老板:行嘞,那就20卖给您");
System.out.println("你:拿鱼回家做饭");
}else {
System.out.println("老板:这鱼价格要"+price+"呢!");
System.out.println("你:算了算了,这价格太贵不要了");
System.out.println("你:买别的回家做饭");
}
}
}
3.多if...else语句
if(判断条件1){
执行语句1;
}else if(判断条件2) {
执行语句2;
}
......
else if(判断条件n){
执行语句n;
}
else {
执行语句n+1;
}
流程图:
代码示例:
public class DemoIfExt {
public static void main(String[] args) {
/*
通过多if...else判断考试成绩等级
【90--100】: 优秀
【80--89】: 良好
【70--79】: 中等
【60--69】: 及格
【0--59】: 不及格
*/
int score =85;
if (score >=90 && score <=100) {
System.out.println("你的成绩等级:优秀");
}else if (score >=80 && score <90) {
System.out.println("你的成绩等级:良好");
}else if (score >=70 && score <80) {
System.out.println("你的成绩等级:中等");
}else if (score >=60 && score <70) {
System.out.println("你的成绩等级:及格");
}else if (score >=0 && score <60) {
System.out.println("你的成绩等级:不及格");
}else {//单独处理不合理情况
System.out.println("你输入的数据不合理");
}
}
}
TIP:
1.自己尝试用if语句代替三元运算符
2.2.2switch语句
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
case 常量值3:
语句体3;
break;
default:
语句体n+1;
break;
}
流程图:
public class DemoSwitch {
public static void main(String[] args) {
int day =3;
switch (day){
case 1:
System.out.println("今天是星期一");
break;
case 2 :
System.out.println("今天是星期二");
break;
case 3:
System.out.println("今天是星期三");
break;
case 4 :
System.out.println("今天是星期四");
break;
case 5 :
System.out.println("今天是星期五");
break;
case 6 :
System.out.println("今天是星期六");
break;
case 7 :
System.out.println("今天是星期日");
break;
default:
System.out.println("数据不合理");
break; //可省略,但是不建议
}
}
}
TIP:
1.case里面的数值不能重复
2.switch后面的小括号中只能是下列数据类型
基本数据类型:byte/short/char/int
引用数据类型:String字符串,enum枚举
3.case语句可以随意,break语句也可以省略,直到遇到了break或者整个部分结束。
2.3循环结构
2.3.1 含义:在满足循环条件的情况下,反复执行某段代码。
需要在合适的时候将循环条件设置为false,否则就是死循环了。
2.3.2 结构:
1.for循环格式
for(初始化表达式;布尔表达式;步进表达式){
循环体
}
流程图:
代码示例:
public class DemoFor {
//打印数字0到9
public static void main(String[] args) {
int i =0;
for( ; i<10; i++){ //如果定义了i,则初始化表达式可以省略
System.out.println(i);
}
}
}
2.while循环结构
格式:
标准格式: 拓展格式:
while(条件判断){ 初始化语句;
循环体 while(条件判断){
} 循环体;
步进语句; //主要和条件判断一起搭配使用
}
代码示例:
public class DemoFor {
//打印数字0到9
public static void main(String[] args) {
int i =0; //初始化
while(i<10){//与步进语句配合使用
System.out.println(i);
i++; //步进语句
}
}
}
3.do...while循环结构
TIP: 基于while循环结构,但是不同点在于先无条件执行一次循环体。
记得while(条件判断)后需要加一个分号。
格式:
标准格式: 拓展格式:
do{ 初始化语句;
循环体 do(条件判断){
}while(条件判断) ; 循环体;
步进语句; //主要和条件判断一起搭配使用
}while(条件判断);
代码示例:
public class DemoFor {
//打印数字0到9
public static void main(String[] args) {
int i =0; //初始化
do{
System.out.println(i);
i++;
}while (i<10);
}
}
区别分析:
1.如果while条件判断从来没有满足过,那么for循环和while循环会执行0次,do...while循环会执行1次。
2.for循环的变量只有在循环内部才可以使用。while和do...while循环在循环后还可以继续使用。
小建议:
1.凡是循环次数确定的,多用for循环。不确定的,用while循环。