java的控制流程有三种:
一,顺序流程
自上而下,按照代码的先后顺序执行
二,分支流程
1,if/else语句
2,switch/case语句
三,循环流程
1,for循环
2,while循环
3,do while循环
先来说说分支流程里的if的用法:if有以下三种方式:
第一种形式:
if(布尔表达式) {
//待执行的代码
}
第二种形式:
if(布尔表达式) {
//待执行的代码
} else {
//待执行的代码
}
第三种形式:
if(布尔表达式) {
//待执行的代码
} else if(布尔表达式) {
//待执行的代码
} else if(布尔表达式) {
//待执行的代码
} else {
//待执行的代码
}
来三组例子更形象: int a = 2;
int b = 2;
if(a > b) {
System.out.println("星期天在家学习 ");
}
---------------------------------------------------------
int a = 11;
int b = 3;
if(a > b) {
System.out.println("a > b ");
} else {
System.out.println("a =< b ");
}
------------------------------------------------------------
int a = 11;
int b = 3; if(a > b) {
System.out.println("a > b ");
} else if (a < b) {
System.out.println("a < b ");
} else {
System.out.println("a = b ");
}
---------------------------------------
String pwd = "hellojava";
if(pwd != null && pwd.length() != 6) {
System.out.println("密码长度不正确,请输入6位密码!");
} else {
System.out.println("请稍等,正在验证密码!");
}
-----------------
接下来说说switch/case语句:
switch/case语句的语法结构是: switch(变量a) { //这里switch变量a的类型是有规定的,可以是byte,short,int,char,enum这五种里的某一种。
case 开关值1: 该开关下执行的语句
case 开关值2: 该开关下执行的语句
case 开关值3: 该开关下执行的语句
case 开关值4: 该开关下执行的语句
......
default: 变量值跟开关值都不符合的情况下后执行
}
实例如下:
int a = 3;
switch(a) {
case 0: System.out.println("a = 0");
case 1: System.out.println("a = 1");
case 2: System.out.println("a = 2");
case 3: System.out.println("a = 3");
default:System.out.println("a = 4");
}
最终的运行结果是:a=3 ,
当我们加上break switch的运行过程是:把 a的值与case的开关值比较,若a跟某个开关值相等,就执行该开关下的语句。如果a的值跟所有case开关值都不同,则执行default分支下的语句。 什么时候退出switch语句,取决于何时遇到break语句。要是没有遇到break语句,就继续执行下面的case语句,知道遇到第一个break语句才退出,否则一直运行到switch流程结束。
例子如下:
int a = 1;
switch(a) {
case 0: System.out.println("a = 0");
case 1: System.out.println("a = 1");
case 2: System.out.println("a = 2");
case 3: System.out.println("a = 3");
break;
default:System.out.println("a = 4");
}
运行结果是:a = 1 a = 2 a = 3 。
因为变量a跟开关1的值相同,所以执行case1语句,一直往下执行case2,case3,遇到break就跳出switch流程,所以a = 1 a = 2 a = 3 。
再来说说循环流程的3种形式:
1. for 循环(使用最多的一种循环)形式为:
for(变量初始化; 条件判断; 步进) {
//待执行的代码
}
for循环执行的流程是:
1) 执行变量初始化
2) 执行条件判断。如果条件判断为假,那么退出for循环,开始执行循环后面的代码;
如果条件判断为真,执行for循环里面的代码。
3) 执行步进
4) 重复步骤2
例子:求出1-100之间的奇数之和。
int sum = 0;
for(int i = 1; i < 100; i = i +2) {
sum += i; //等价于sum = sum + i;
}
System.out.println("0-100之间的奇数之和" + sum);
运行结果是:1-100之间的奇数之和2500
2, while 循环形式为: 先判断while里的布尔表达式,为真的话就执行代码;布尔表达式为假,while的循环体就一次也不执行。
while(布尔表达式) {
//待执行的代码
}
例子:求出0-100之间的整数之和
int a = 1;
int sum = 0;
while(a <= 100) {
sum += a; //等价于 sum = sum + a;
a++;
}
System.out.println("1-100的整数之和===" + sum);
运行结果是:1-100的整数之和===5050
3. do…while 循环为: 先执行do里的代码,接着判断while里的布尔表达式,为真的话再接着执行do里的代码,知道遇到while里的布尔表达式为假才跳出。注意while后有个分号
do {
//待执行的代码
}
while();
具体例子如下:求出0-100之间的偶数之和。
int a = 0;
int sum = 0;
do{
sum += a;
a = a + 2;
}
while(a <= 100);
System.out.println("0-100之间的偶数之和 ===" + sum);
最终的运行结果是:0-100之间的偶数之和 ===2550
while与do…while之间的区别:
如果布尔表达式的第一次判断就为false,那么while循环一次也不执行;do…while循环则会执行一次。
如果布尔表达式第一次判断为true,那么while循环与do…while循环是一样的。
例子如下:
int k = 4;
while(k < 2) {
System.out.println("hello wolrd");
}
do{ System.out.println("welcomt to java");
}
while(k < 2); 运行结果是: welcomt to java