流程控制语句
1、注释
2、方法
3、流程结构
4、分支结构的语句-if
5、分支结构的语句-switch
6、循环结构的语句-for
7、循环结构的语句-while
8、循环结构的语句-do while
9、流程跳转语句-break和continue
10、双重循环
课程
1、注释
(1)对代码解释说明的文字,程序执行时注释不执行
(2)Java注释分为三类
单行注释 //注释信息
多行注释 /* 注释信息 /
文档注释 /* 注释信息 */
(3)使用说明
方法体内使用单行或多行注释
方法体外使用文档注释
2、方法
(1)语句组(语句块)
多条语句使用大括号括起来,我们成为语句组(语句块)。
语句组之间可以相互嵌套。
(2)方法
它其实就是一个有名字的语句组(语句块)。
定义位置:类中。
简单定义:
public static void 方法名(){
//方法体:语句组
}
案例:
public class Lx1 {
public static void lx1() {
int a = 1, b = 2;
// a=b; //a=2
// b=a; //b=2
// 1
// int c=a; //c=1
// a=b; //a=2
// b=c; //b=1
// 2
a = a + b; // a=3 b=2
b = a - b; // a=3 b=1
a = a - b; // a=2 b=1
System.out.println(a);
System.out.println(b);
}
public static void main(String[] args) {
System.out.println(1);
lx1();
System.out.println(2);
}
}
(3)主方法
主方法是我们程序执行的入口!!
我们要执行的代码必须放入主方法中。
(4)方法的调用
调用语句:方法名();
调用的效果:调用一个方法,其实就是执行这个它的方法体中的代码。
方法体中的代码执行完毕,调用语句执行才结束。
(5)使用方法封装代码的好处
提高代码的重用性。
定义一次,多处调用。
3、流程结构
(1)顺序结构
我们的程序默认是按照顺序结构执行:从上往下从左往右,一条一条语句执行的。
(2)选择结构(分支结构)
If语句
Switch语句
(3)循环结构(迭代结构)
For语句
While语句
Do while语句
4、分支结构的语句-if
(1)使用场景
如果一件事情有多种情况,但是每次只能发生一种情况。
到底发生哪一种情况呢,根据条件来选择。
简单说,n选1。
(2)单分支
语法:
if(布尔条件){
//条件为true要执行的代码(语句组)
}
执行流程:
案例:
public class if01 {
public static void main(String[] args) {
System.out.println("—begin----");
int week=3;
if(week>5) {
System.out.println("我去打球");
}
System.out.println("---end----");
}
}
(3)双分支
语法:
if(布尔条件){
//条件为true要执行的代码(语句组)
}else{
//条件为false要执行的代码(语句组)
}
执行流程:
案例:
public class if02 {
public static void main(String[] args) {
System.out.println("---begin----");
int week=3;
if(week>5) {
System.out.println("我去打球");
}else {
System.out.println("我要上班或者学习");
}
System.out.println("---end----");
}
}
public class if0201 {
public static void main(String[] args) {
int a=1,b=3;
if(a>b) {
System.out.println(a);
}else {
System.out.println(b);
}
}
}
(4)多分支
语法:
if(布尔条件1){
//条件1为true要执行的代码(语句组)
}else if(布尔条件2){
//条件2为true要执行的代码(语句组)
}else if(布尔条件3){
//条件3为true要执行的代码(语句组)
}
…
else if(布尔条件n-1){
//条件n-1为true要执行的代码(语句组)
}else {
//以上条件都不成立,要执行的代码(语句组)
}
执行流程:
案例:
public class if03 {
public static void main(String[] args) {
int a=1,b=2,c=3;
if(a>=b&&a>=c) {
System.out.println(a);
}else if(b>=a&&b>=c) {
System.out.println(b);
}else {
System.out.println(c);
}
}
}
public class if0301 {
public static void main(String[] args) {
int score=99;
//优 [90-100]
//良 [80-90)
//中 [60-80)
//差 [0-60)
if(score>=90) {
System.out.println("优");
}else if(score>=80) {
System.out.println("良");
}else if(score>=60) {
System.out.println("中");
}else {
System.out.println("差");
}
//单分支
if(score>=90) {
System.out.println("优");
}
if(score>=80&&score<90) {
System.out.println("良");
}
if(score>=60&&score<80) {
System.out.println("中");
}
if(score<60){
System.out.println("差");
}
//双分支
if(score>=90) {
System.out.println("优");
}else {
if(score>=80) {
System.out.println("良");
}else {
if(score>=60) {
System.out.println("中");
}else {
System.out.println("差");
}
}
}
}
}
5、分支结构的语句-switch
(1)语法:
switch(表达式){
case 常量值1:语句组1;[break;]
case 常量值2:语句组2;[break;]
case 常量值3:语句组3;[break;]
…
case 常量值n-1:语句组n-1;[break;]
default: 语句组n;
}
注意:表达式的结果只能是byte、short、int、char、String(jdk1.7)
(2)执行流程:
(3)案例:
public class switch01 {
public static void main(String[] args) {
int week=3;
switch(week) {
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("你输入的信息错误");
}
}
}
(4)break语句作用
结束switch语句。
如果没有break:从匹配的case语句组开始,一直向下执行到break或者下面的所有语句组结束为止。Switch才执行结束。
巧妙利用没有break的特点,合并重复的语句组:
public class Switch03 {
public static void main(String[] args) {
int y=2014,m=2;
switch(m) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(31);
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(30);
break;
case 2:
if((y%4==0&&y%100!=0)||(y%400==0)) {
System.out.println(29);
}else {
System.out.println(28);
}
}
}
}
(5)多分支if和switch对比
If适用于所有多分支的场景
Switch只适用于可以枚举的场景
6、循环结构的语句-for
(1)使用场景
我们重复进行某项工作
(2)语法
for([初始化语句];[布尔条件];[迭代语句]){
//循环体:用来定义重复的操作
}
(3)执行流程
(4)使用案例
public class for01 {
public static void main(String[] args) {
for(int i=1;i<=5;i++) {
System.out.println(“这是一份资料”);
}
}
}
public class for02 {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<=100;i++) {
sum=sum+i;
}
System.out.println(sum);
}
}
public class for03 {
public static void main(String[] args) {
int ji=1;
for(int i=5;i>0;i--) {
ji=ji*i;
}
System.out.println(ji);
}
}
public class for04 {
public static void main(String[] args) {
//如果没有条件判断,始终为true
for(;😉 {
System.out.println(“张耕菀”);
}
}
}
7、循环结构的语句-while
(1)语法:
While(布尔条件){
//循环体:可以定义重复的操作
}
(2)执行流程
(3)使用案例
package day02;
public class while01 {
public static void main(String[] args) {
// int i=1;
// for(;i<=5;) {
// System.out.println(“冯坤”);
// i++;
// }
int i=1;
while(i<=5) {
System.out.println("冯坤");
i++;
}
}
}
package day02;
public class while02 {
public static void main(String[] args) {
int sum=0;
int i=1;
while(i<=100) {
sum+=i;
i++;
}
System.out.println(sum);
int ji=1;
int j=1;
while(j<=5) {
ji*=j;
j++;
}
System.out.println(ji);
}
}
8、循环结构的语句-do while
(1)语法:
Do{
//循环体
}while(布尔条件);
(2)执行流程
(3)do while的特点
循环体至少执行一次,因为它先执行循环体在条件判断。
(4)使用案例
package day02;
public class doWhile01 {
public static void main(String[] args) {
// int i=1;
// while(i<=5) {
// System.out.println(“冯坤”);
// i++;
// }
int i=1;
do{
System.out.println("冯坤");
i++;
}while(i<=5);
}
}
package day02;
public class doWhile02 {
public static void main(String[] args) {
int sum=0;
int i=1;
do {
sum+=i;
i++;
}while(i<=100);
System.out.println(sum);
int ji=1;
int j=1;
do {
ji*=j;
j++;
}while(j<=5);
System.out.println(ji);
}
}
9、流程跳转语句-break和continue
(1)Break
可以用在switch中,还可以循环体中。
Break用在switch语句中,表示结束switch语句。
Break用在循环体中,表示结束循环语句。
public class break01 {
public static void main(String[] args) {
int i=1;
while(i<=10) {
if(i==5) {
break;
}
System.out.println(“java:”+i);
i++;
}
// if(i==5) {
// break;
// }
}
}
public class break02 {
public static void main(String[] args) {
//有一只青蛙,掉到井里了,井深7米
//白天向上跳3米,晚上滑下去2米
//问:几天出来?
int js=7;
int h=0;
int day=0;
while(true) {
day++;
h=h+3;//白天
if(h>=js) {
break;
}
h=h-2;//黑夜
}
System.out.println(day);
}
}
(2)Continue
只能用于循环体中。
表示结束当前循环的本次循环,然后进入下一次循环。
package day02;
public class continue01 {
public static void main(String[] args) {
int i=1;
while(i<=10) {
i++;
if(i==5) {
continue;
}
System.out.println("java:"+i);
}
for(int k=1;k<=5;k++) {
if(k==3) {
continue;
}
System.out.println("web:"+k);
}
}
}
10、双重循环
(1)打印九九乘法表
package day02;
public class Demo99 {
public static void main(String[] args) {
//打印9行
for(int i=1;i<=9;i++) {
//打印一行,打印i个
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+(j*i)+" ");
}
//打印换行
System.out.println();
}
}
}
public class break03 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 5; j++) {
System.out.println("aaa");
}
System.out.println("bbb");
}
}
}
(2)双重循环中的break和continue
public class break03 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 5; j++) {
System.out.println("aaa");
// if(i==3) {
// break;
// }
}
if(i==3) {
break;
}
System.out.println("bbb");
}
}
}