黑马程序员----java基础之流程控制语句

来源:互联网 发布:vs2010 编译php扩展 编辑:程序博客网 时间:2024/05/22 05:21

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

 

流程控制语句

在程序的执行过程中,个条语句的执行顺序对于程序的结果有直接影响,也就是说程序的流程对程序有直接的影响。所以,我们必须了解每一条语句的执行流程,并且很多时候我们要通过控制语句的执行顺序来完成我们想要的完成的功能。
java语句中分别有三类流程控制语句:顺序结构,选择结构,循环结构。

一、流程控制语句之顺序结构

所谓顺序结构,是程序中较为简单的语法,没有特定的语法结构,只是按照代码的先后顺序逐一执行,但是程序中的大多数代码都是这样执行的。简单说就是在前面的先执行,后面的后执行,由上而下。
下面我们代码实现:
public class Demo {
public static void main(String[] args) {
System.out.println("程序开始了。。");
System.out.println("第二条语句");
System.out.println("第三条语句");
System.out.println("第四条语句");
System.out.println("程序结束了。。。");
}
}

二、流程控制语句之选择结构

选择结构也被称为分支结构,同时选择结构有特定的语法规则,代码要执行具体的逻辑运算进判断,逻辑运算的结构有两个,所以产生选择,按照不同的选择执行不同的代码。
选择结构有两种:if语句,switch语句
if语句有三种格式:

格式1:if(比较表达式){
语句体;
}
执行流程:1.先对比较表达式的结果进行计算,看是true还是false
  2.如果是true,就执行体里面的执行语句
  3.如果是false,就不执行执行体中的与语句

代码实现:

public class Demo2 {
public static void main(String[] args) {
int a = 20;
int b = 30 ;
int c = 20;
if(a == b)
{
System.out.println("a和b相等");
}
if(a == c)
{
System.out.println("a和c相等");
}
}
}

执行结果:a和c相等

因为a不等于b,所以不会执行。因为a等于c,所以执行体中的语句会执行

注意:比较表达式无论有多复杂,其结果一定是boolean类型的,还有if后可以不跟大括号,但是只有if后面的一条语句是属于if的,如果语句体中要执行多条语句,就一定要有大括号,建议何种情况下都有大括号。大括号后边不能有分号。


格式2:if(比较表达式){

语句体1;

}else

{

语句体2;

}

首先计算比较表达式,看结果是true还是false。

如果是true,就执行语句体1,如果是false,就执行语句体2.

public class Demo3 {
public static void main(String[] args) {
int a = 20;
int b = 30;
if(a > b)
{
System.out.println("a比b大");
}else
{
System.out.println("b比a大");
}
}
}

运行结果:b比a大

a>b为false,所以语句体1不执行,执行语句体2

注意:只有if后面有括号,else后面没有括号

格式3:if(比较表达式1)

{

语句体1;

}else if(比较表达式2)

{

语句体2;

}

。。。

else

{

语句体n;

}

首先计算比较表达式1,看结果是true还是false,是true执行语句体1,结束流程。如果是false判断比较表达式2,看结果是true还是false,是true执行语句体2,流程结束,如果是false,判断下一个比较表达式的值,如此下去,如果都是false就执行else中的语句体。

代码实现:

public class Demo4 {
public static void main(String[] args) {
int a = 90;
if(a < 10){
System.out.println("小于10");
}else if(a < 40){
System.out.println("小于40");
}else if(a < 100){
System.out.println("小于100");
}else{
System.out.println("太大了");
}
}
}

执行结果:小于100

a<10结果为false,a<40结果为false,a<100结果为true,执行System.out.println("小于100");

注意:else可以省略,没有else流程也会结束,但不建议省略。只要if和else if中有一个满足条件时,流程就结束。


switch语句:

格式:switch(表达式){

case 值1:

语句体1;

case 值2:

语句体2;

case 值3:

语句体3;

。。。

default:

语句体n;

break;

}

格式解释:

1.switch表示这是switch语句,表达式的取值:byte,short,int,char

2.case后面跟的是要和表达式比较的值

3.语句体可以是一条语句,也可以是多条语句

4.break表示中断,结束的意思,可以结束switch语句

5.default表示所有的情况都不满足,就执行该语句体的内容

先计算表达式的值,再和值1,值2等等进行匹配,如果都不满足就执行default中的语句体,如果有满足的,就执行满足表达式的值的语句体,如果语句体中有break,而且被执行到了就结束switch语句。

代码实现:

public class Demo5 {
public static void main(String[] args) {
int a = 3;
switch(a){
case 1 :
System.out.println("是1");
case 2 :
System.out.println("是2");
case 3 :
System.out.println("是3");
break;
case 4:
System.out.println("是4");
default :
System.out.println("没有");
}
}
}

执行结果:是3

表达式是a,a的值是3,语句按顺序找匹配3的,在case 3找到了,便执行System.out.println("是3");,然后是break,结束switch语句。

注意:如果没有break,就会产生case穿透,也就是说程序会一直走下去,执行到switch的结尾,但执行结果可能不是我们想要的,建议不要省略。default也不一定要在最后,也可以省略,但建议在最后。

三、流程控制语句之循环结构

循环结构:循环结构可以在满足条件的情况下,反复循环执行同一段代码,这种重复执行代码的结构被称为循环结构,但反复执行的时候,需要有判断条件,但不符合判断条件时,就会结束循环语句,跳出循环。
分类:for循环

while:while循环,do{}while循环

for格式:for(初始化表达式;判断条件语句;控制条件语句)

{

循环体语句;

}

格式解释:

a:执行初始化表达式

b:执行判断条件语句,看结果是true还是false,是true就继续执行,时false就结束语句。

c:执行循环体语句。

d:执行条件控制语句。

e:在回到b继续。

一下图解


代码实现:输入从0到5;

public class ForDemo {
public static void main(String[] args) {
for(int x = 0 ; x < =5 ; x++){
System.out.print(x);
}
}
}

执行结果:012345

注意:初始化语句只执行一次。

while格式:

初始化条件语句;

while(判断条件语句)

{

循环体语句;

控制条件语句;

}

格式解释:

a.执行初始化语句

b.执行判断条件语句,看结果是true还是false,是true就继续执行,是false就结束语句

c.执行循环体语句

d.执行控制条件语句

e.回到b

和for循环类似,功能一样,格式不同。

代码实现:输入从0到5;

public class WhileDemo {
public static void main(String[] args) {
int x = 0 ;
while(x <= 5){
System.out.println(x);
x++;
}
}
}

执行结果:012345.

do{}while格式:

初始化条件语句;

do{

循环体语句;

控制条件语句;

}while(判断条件语句)

格式解释:

a:执行初始化条件语句

b:执行循环语句

c:执行控制条件语句

d:执行判断条件语句,看结果是true还是false,是true就继续执行,是false就结束语句

c:回到b

代码实现:从0到5

public class WhileDoDemo {
public static void main(String[] args) {
int x = 0;
do{
System.out.println(x);
x++;
}while(x <= 5);
}
}

执行结果:012345;

三种循环区别:

1.do{}while至少循环一次,而for和while是先进行条件判断再执行循环体

2.如果您想循环结束之后,仍想使用控制条件的那个变量,就使用while,否则使用for。

建议:while和do{}while能实现的for都能实现,而把循环结构中的变量及早释放会节约资源

四、控制跳转语句

分类:break,continue,return
break:意义为中断
使用场景:1、在switch语句中。
  2、在循环语句中

作用:退出该循环

continue:意义为继续

使用场景:循环语句(注意:没有使用场景而使用是无意义的)

作用:可理解为结束本次循环,进行下一次循环

return:是一个退出方法

作用:跳转到上一层的调用,如果在流程控制语句中执行到了return,就会结束流程控制语句,不管语句执行到那。

















































0 0
原创粉丝点击