欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

基础篇-1.4Java流程语句的基础

程序员文章站 2022-06-04 11:38:00
学会了这些流程语句,不单止Java语言的,其他语言的流程语句也照样可以通吃。 ......

1 条件语句

条件语句,即类似 if...else... 的语句,一个if语句包含了一个布尔表达式,以及一个或多个语句。

if语句语法

if(布尔表达式) {
       //  布尔表达式为true时执行的语句块
}

 

if...else语句语法

if(布尔表达式) {
    // 布尔表达式为true时执行的语句块
} else {
    // 布尔表达式为false时执行的语句块
}

 

if...else if...else语句语法

if(布尔表达式1) {
    // 布尔表达式1为true时执行的语句块
} else if (布尔表达式2)  {
    // 布尔表达式1为false,但是布尔表达式2为true时执行的语句块
} else {
    // 布尔表达式1和布尔表达式2均为false时执行的语句块
}

注意:若同一个if语句中有多个else if语句,则类似的会有多个布尔表达式来判断,从上到下地依次判断if中的布尔表达式,只要判断到其中有一个布尔表达式为true则进入相应的代码块,而不会在往下判断其他的else if和else语句。

 

实例演示:

public class myfirst {
    
    public static void main(string[] args) {
        integer a1 = 2;
        integer a2 = 3;
        integer a3 = 2;
        
        if (a1 == a2) {
            system.out.println("进入第一个if结构");
        } else if (a1 == a3) {
            system.out.println("进入第二个if结构");
        } else {
            system.out.println("进入最后的if结构");
        }
    }

}

运行结果是,进入了第二个if结构块执行代码,输出:进入第二个if结构

 

2 循环结构

 顺序结构的程序语句只能被执行一次,但是如果你想要同样的操作执行多次的话,则需要循环结构的语句来实现了。java中主要有三种循环结构分别是,while循环、do...while循环和for循环。

 while循环

先判断布尔表达式,再执行循环内容。

// 若布尔表达式为true,则进入循环块执行循环的内容,而后每一次执行循环内容之前都会判断布尔表达式是否为true,再来决定是否执行循环内容
while(布尔表达式) {
    // 循环的内容
}

示例:

public class myfirst {
    
    public static void main(string[] args) {
        integer start = 1;
        integer end = 5;
        
        while (start <= end) {
            system.out.println("当前的start值:" + start);
            start++;
        }
        
    }

}

循环了5次,输出的值依次如下所示:

当前的start值:1
当前的start值:2
当前的start值:3
当前的start值:4
当前的start值:5

 

do...while循环

与while循环类似,唯一的区别是,do...while无论如何都会先执行一次循环内容。

// 先执行循环内容,再判断布尔表达式是否为true,以此来决定是否再次执行循环内容
do {
    // 循环的内容
} while(布尔表达式);

示例:

public class myfirst {
    
    public static void main(string[] args) {
        integer start = 1;
        integer end = 5;
        
        do {
            system.out.println("当前的start值:" + start);
            start++;
        } while (start > end);
        
    }

}

虽然 start > end 判断条件不符,但是仍然会先执行一次循环内容,输出结果:

当前的start值:1

 

for循环

for循环执行的次数是在一开始的时候就已经决定好的。

// 先初始化;再判断布尔表达式是否为true,为true则执行循环内容;最后更新初始化的值,进入下一次循环,判断布尔表达式是否为true。。。
for(初始化; 布尔表达式; 更新) {
  // 循环的内容  
}

示例:

public class myfirst {
    
    public static void main(string[] args) {
        for (int i=1; i<=5; i++) {
            system.out.println("当前循环次数:" + i);
        }
    }

}

循环了5次,输出结果为:

当前循环次数:1
当前循环次数:2
当前循环次数:3
当前循环次数:4
当前循环次数:5

 

另外这里扩展一下,java5引入的主要应用于数组的增强型for循环,示例如下:

public class myfirst {
    
    public static void main(string[] args) {
        int[] arr = {10, 20, 30, 40, 50};
        for (int i : arr) {
            system.out.println("当前循环所在的数组值:" + i);
        }
    }

}

循环了5次,输出结果为:

当前循环所在的数组值:10
当前循环所在的数组值:20
当前循环所在的数组值:30
当前循环所在的数组值:40
当前循环所在的数组值:50

 

break

在循环体中,break是可以跳出当前循环体,继续执行循环以外的语句。

public class myfirst {
    
    public static void main(string[] args) {
        for (int i=1; i<=5; i++) {
            // 若i大于2则会跳出循环
            if (i > 2) {
                break;
            }
            system.out.println("当前循环次数:" + i);
        }
    }

}

由于有了break跳出循环的操作,故此处只循环了两次输出:

当前循环次数:1
当前循环次数:2

 

continue

在循环体中,continue是可以跳过当次循环在continue语句执行后的内容,进入下一次循环。

public class myfirst {
    
    public static void main(string[] args) {
        for (int i=1; i<=5; i++) {
            // 若i等于2则会跳过此次循环的内容,直接进入下一次循环
            if (i == 2) {
                continue;
            }
            system.out.println("当前循环次数:" + i);
        }
    }

}

输出如下:

当前循环次数:1
当前循环次数:3
当前循环次数:4
当前循环次数:5

 

return

return关键字,主要是用于方法的返回,即使是在循环体内也会直接返回,终止次方法继续向下执行。

public class myfirst {
    
    public static void main(string[] args) {
        for (int i=1; i<=5; i++) {
            // 若i等于2则会直接终止此方法继续向下执行
            if (i == 2) {
                return;
            }
            system.out.println("当前循环次数:" + i);
        }
        
        system.out.println("执行完毕!");
    }

}

输出如下:

当前循环次数:1

 

3 switch case语句

 switch case语句,主要用于判断某一变量与一系列的值中哪个值相等,则进入该值所在的分支语句块。

switch(变量){
    case 值1 :
       //语句
       break; //可选
    case 值2 :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
}
  • 变量的类型一般是int、short、byte、char或string,并且必须case后面的值必须是常量或者字面值。
  • break可以有也可以没有,若有break值则会直接跳出switch语句块,否则会在switch语句块中一直执行下去。
  • default分支一般在switch语句块的末尾,是可有可无的,不需要break。
  • switch case语句执行时,一定是先匹配switch的变量值,若匹配到其中一个case的值则会进入该case的分支,再根据该case分支中是否有break,判断是否继续匹配下一个case或者直接跳出switch语句块。

 

public class myfirst {
    
    public static void main(string[] args) {
        int a = 2;
        switch (a) {
        case 1 :
            system.out.println("case 1");
            break;
        case 2 :
            system.out.println("case 2");
            break;
        default:
            system.out.println("default");
        }
    }

}

a变量匹配到2,故直接进入case 2的分支,分支执行完后发现有break就直接跳出switch语句,输入如下:

case 2

 

感慨

不管是条件语句,还是循环结构,或者switch case语句,都是我们在java中比较常见,也是必须熟悉的语句。其实不单止是java,在其他语言中都会大同小异的用到这些语句。