Javaweb微专业第四篇-----从程序控制结构谈起

一、顺序结构

这个最常见,就是按照编写的程序一条一条的去执行。

二、分支结构

1.单分支结构

if( 布尔表达式 ) {
    //分支1
}

注:这里的布尔表达式,就是表达式的结果是boolean类型才可以,也就是值为true或false
2.多分支结构
a.单分支结构

if( 布尔表达式 ) {
//分支1
}else{
   //分支2
}

esle的就近匹配原则:else总是与最近的if相匹配。我们建议if与else后面带{}。
:if后面执行一个语句,带括号的是复合语句,可以看作一个语句。单个分号也是一个语句,称为空语句,什么也不做。

b.if..else…多分支结构

if( 布尔表达式1 ) {
    //分支1
}else if( 布尔表达式2){
   //分支2
}else{
    //最后分支
}

c.switch…case语句

    switch (i) {
            case 变量可能值一: //分支一;
            case 变量可能值二://分支二;
            case 变量可能值三://分支三;
            case 变量可能值四://分支四;
            default://默认分支;
        }

注意点
1.i可以是单个变量,可以是表达式,其值类型必须是int、byte、char、short、String、枚举类,case后面变量可能值必须是常量或常量表达式、枚举类实例
2.case后面可以带多个语句,如果case后面没有遇到break;将从当前语句向下继续执行后面所有case的内容。有break将跳出switch语句,最后一个case不加break也会停止。
3.default的位置可以随意放置
4.switch合并
可能需要某两个条件的结果一致,可以使用switch合并,部分代码如下

switch (i) {
            case 5:
            case 6:System.out.println("5|6");break;
            default:System.out.println("default");
        }

d.条件表达式

a=i>2"i大于2":"i小于等于2";

:.条件表达式可以嵌套,但是不要嵌套太深。程序需要可读性和可维护性。我想你看到下面的代码,想骂人的心的都有了。

System.out.print((i>1?numbers[i]>0?"+"+numbers[i]+"x"+i:numbers[i]+"x"+i:i==1?numbers[i]>0?"+"+numbers[i]+"x":numbers[i]+"x":numbers[i]>0?"+"+numbers[i]:numbers[i]));

三、循环结构

1.while

while(布尔表达式){
    //代码语句
}

2.do while

do{
    //代码语句
}while(布尔表达式);

3.for

for(初始化; 布尔表达式; 步长) {
    //代码语句
}

关于 for 循环有以下几点说明:
最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
执行一次循环后,更新循环控制变量。
再次检测布尔表达式。循环执行上面的过程。

4.for-each循环
for-each循环也叫增强for循环

for(声明语句 : 表达式)
{
   //代码句子
}

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组或者容器,或者是返回值为数组或容器的方法。
:增前for循环的遍历无法修改原数组或容器中的值,并且只能用在数组或者实现iterable接口的集合类上。

死循环:循环条件恒为导致无法退出循环。

四、程序控制语句

1.continue与break的区别
continue:结束本次循环,继续当前循环的下一轮循环
break:跳出当前循环。
2.标号
有时候有多层循环的时候,break/continue只能对当前循环有效,这个时候可以用标号结合break/continue使用。

猜你喜欢

转载自blog.csdn.net/fj_Author/article/details/53142925