java基础(二)

佐手、 提交于 2019-12-01 19:31:51

1 条件语句

1.1 简单的if条件语句

if语句可分为简单的if语句if...else语句if...else if多分支语句

语法:

if(布尔表达式){

  语句序列

}

 

注意:

(1) 布尔表达式:必要参数,可以是一个单纯的布尔值变量或常量,也可以是使用关系或布尔运算符的表达式。

(2)语句序列 :可选参数,可以是一条或者多条语句。

1.2 if...else语句

if...else语句是条件语句中最常用的一种形式,它会针对某种条件有选择地作出处理。通常表现为“如果满足某种条件,就进行某种处理,否则进行另一种处理”。

语法:

if(表达式){
      若干语句  
}
else{
      若干语句
}

if后面“()”内的表达式必须是boolean型的。如果表达式值为true,则执行紧跟if后面的复合语句;如果表达式为false,则执行else后面的复合语句。

注意:if...else语句有时可以使用三元运算符简化代码。

1.3 if...else if多分支语句

if...else if多分支语句针对某一事物的多种情况进行处理。

语法:

if(条件表达式1){
 语句序列1
}
else if(条件表达式2){
语句序列2
}
...
else if(条件表达式n){
语句序列n
}

注意:

(1)条件表达式1~条件表达式n:必要参数。可以由多个表达式组成,但最后返回的结果一定要为boolean类型。

(2)语句序列:可以是一条或者多条语句,当条件表达式那个为真,执行哪个语句序列。

1.4 switch语句

switch(表达式){
case常量值1:
       语句块1
       [break;]  
........
case常量值n:
       语句块n
       [break;]
default:
        语句块n+1
       [break;]    
}

switch语句中表达式的值必须是整数、字符型或字符串类型,常量值1~n必须也是整数、字符型和字符串类型。switch语句先计算表达式的值,如果表达式的值和某个case后面的常量值相同,则执行case语句后的若干语句直到break语句为止。如果该case语句中没有break语句,将继续执行后面case中的若干语句,直到遇到break语句为止。若没有一个常量的值与表达式的值相同,则执行default后面的语句。default语句为可选的,如果它不存在,且switch语句中表达式的值不与任何case的常量值相同,switch不做任何处理。

 

2 循环语句

2.1 while语句

while语句也称为条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句。

语法:

while(条件表达式){
         执行语句
}

 当条件表达式为真的时候,会执行语句;直到条件表达式为假的时候,退出循环。

2.2 do...while循环语句

do...while语句与while循环语句类似,区别是while语句先判断条件后执行,do...while语句先执行一次循环后,再判断条是否成立。也就是说do..while语句至少执行一次。

语法:

do{
执行语句
}
while(条件表达式);

2.3 for循环语句

for循环可以用来重复执行某条语句,直到某个条件得到满足。在java5以后增加了foreach语法。

(1)for语句

语法:

for(表达式1;表达式2;表达式3){
      语句序列
}

I.表达式1:初始化表达式,负责完成变量的初始化。

II.表达式2:循环条件表达式,值为boolean型的表达式,指定循环条件。

III.表达式3:循环后操作表达式,负责修整变量,改变循环条件。

执行流程:在执行for循环时,首先执行表达式1,完成某一变量的初始化工作;下一步判断表达式2的值,若表达式2的值为true,进入循环体;在执行完循环体后计算表达式3,这部分是增加或减少循环控制变量的一个表达式。这样一个循环就结束了。第二轮循环从表达式2开始,若表达式2返回true,继续循环,否则跳出整个for语句。

执行控制图:

例子:

public class Demo {
    //计算1-100所有偶数的和
    public static void main(String[] args) {
        int sum=0;
        for(int i=2;i<=100;i+=2) {
            sum=sum+i;
        }
        System.out.println("1到100之间所有的偶数和为:"+sum);
    } 
}1到100之间所有的偶数和为:2550

(2)foreach语句

foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本。foreach并不是一个关键字,在遍历数组等方面提供了很大的方便。

语法:

for(元素变量x:遍历对象obj){
      引用了x的java语句;
}
public class Demo {
    public static void main(String[] args) {
        int []arry= {7,10,8,1,3};
        System.out.println("一位数组的元素分别为:");
        for(int x:arry) {
            //x代表输出的引用变量,arry指定要循环的遍历数组
            System.out.println(x+“,”);
        }
        
    } 
}

一位数组的元素分别为:
7,10,8,1,3,

 

3 循环控制

循环控制包括两方面内容,一方面是控制循环变量的变化方式另一方面是控制循环的跳转。控制循环的跳转需要用到break和continue两个关键字,这两条跳转语句的跳转效果不同,break是中断循环,continue是执行下一次循环

3.1 break语句

使用break语句可以跳出switch语句和循环语句。

break语句的使用形式:

 

注意:如果遇到循环嵌套的情况,break语句只会使程序流程跳出包含它的最内层的循环结构,只跳出一层循环。

循环嵌套:我的理解是如果把循环嵌套当成绕圈跑步的话,外循环控制的是你跑几次,内循环控制的是每一次需要跑几圈。

public class Demo {
    //使用break跳出内循环
    public static void main(String[] args) {
        for(int i=0;i<3;i++) {
            for(int j=0;j<5;j++) {
                if(j==3) {
                    break;
                }
                System.out.println("i="+i+",j="+j);
            }
        }
    }        
} 

i=0,j=0
i=0,j=1
i=0,j=2
i=1,j=0
i=1,j=1
i=1,j=2
i=2,j=0
i=2,j=1
i=2,j=2

从结果可以看出:(1)如果j等于3,break就中断了内部循环,输出j值最大到2.        (2)外层的循环没有受到影响,输出i的最大值为2,而2正是for循环设定的最大值。

如果想让break跳出外层循环,需要加一个”标签”,语法:

标签名: 循环体{
       break 标签名;  
}
public class Demo {
    //使用break跳出外循环
    public static void main(String[] args) {
        loop: for(int i=0;i<3;i++) {
            for(int j=0;j<6;j++) {
                if(j==3) {
                    break loop;
                }
                System.out.println("i="+i+",j="+j);
            }
        }
    }        
} 

i=0,j=0
i=0,j=1
i=0,j=2

由结果可知,当j等于3时,i的值没有增加,直接跳出外层循环。

3.2 continue语句

continue不是立即跳出循环体,而是跳过本次循环结束前的语句,回到循环的条件测试部分,重新开始循环。在for循环语句中遇到continue后,首先执行循环的增量部分,然后进行条件测试。在while和do..while中,continue使控制直接回到条件测试部份。

 

public class Demo {
    //输出1-20之间的奇数,使用continue跳出循环
    public static void main(String[] args) {
        for(int i=1;i<20;i++) {
            if(i%2==0) {
                continue;
            }
            System.out.println(i);
        }
    }        
} 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!