前言
本文章主要讲解控制流程:块作用域、条件语句、switch语句,篇幅不大,通俗易记。
块作用域
在深入学习控制结构前,须先了解块的作用。
定义:由多条Java语句组成的语句,并用一对大括号括起来。
作用:块确定了变量的作用域,一个块可以嵌套在另一个块上。
实例:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
package decom1; public class cuowu { public static void main(String[] args) { //第二个块嵌套在第一个块里面。 byte i = 12 ; //变量i只在第二个块区域内有作用包括嵌套里面的块。 { //第三个块嵌套在第二个块里面同时也在第一个块里面。 int a = 3 ; //变量a只在所在的块起到作用。 System.out.println(a); } //写在main(程序执行的入口)里面的代码块,就称为局部代码块。 //局部代码的作用:能够让变量更早的在内存中消失,节省内存空间。 System.out.println(i); } } |
不能在嵌套的两个块中声明同名的变量。
实例:
|
1 2 3 4 5 6 7 8 9 10 |
package decom1; public class cuowu { public static void main(String[] args) { byte i = 12 ; { int i = 3 ; //报错:Duplicate local variable i } System.out.println(i); } } |
条件语句
条件语句有三种格式,下面我来解密一下哪三种格式。
格式一
if(条件表达式) { 语句体; }
Java中条件语句的表现形式:
if(condition) statement
这里的条件必须用小括号括起来。
条件表达式最终的结果只能是boolean类型,要么是true,要么是false。
流程:
1.如果程序执行到if语句的时候,会去看条件表达式的结果是true还是false。
2.如果是true,就会进入到if中,执行里面的语句体内容。
3.如果是false,就不会进入到if中,就不会执行到里面的语句体内容。
|
1 2 3 4 5 6 7 8 9 10 11 |
package com; public class liu { public static void main(String[] args) { int i = 1 ; int j = 2 ; if (i > j) { System.out.println(i); } System.out.println(j); //由于i>j不成立,所以不执行if里面的语句,直接跳过执行外面的语句。 } } |
格式二
if(条件表达式){ 语句体; }else{ 语句体; }
语句表现形式:
if(condition) statement1 else statement2
执行流程:
1.如果程序执行到if语句的时候,会去看条件表达式的结果是true还是false。
2.如果是true,就会进入到if中,执行里面的语句体内容。
3.如果是false,就不会进入到if中,会进入到else中,执行里面的语句体。
实例:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package com; public class liu { public static void main(String[] args) { //获取两个数的较大值 int i = 1 ; int j = 2 ; int max = 0 ; if (i > j) { max = i; //把i赋值给max } else { max = j; //把j赋值给max } System.out.println(max); //因为i>j条件为假,所以执行else里面的语句,所以max得到的数值为2。 } } |
格式三(常用)
if(条件表达式){ 语句体; }else if{ 语句体; }…else{语句体;}
语句表达形式:
if…else if…
执行流程:
1.如果程序执行到if语句的时候,会去看条件表达式的结果是true还是false。
2.如果为true,就会执行if中的语句体内容,其他的语句体不会执行。
3.如果为false,就会继续向下走,看else if的条件表达式的结果是true还是false。
4.如果是true,就进入到elseif中,执行里面的语句体内容。
5.如果是false,就继续向下走…
6.如果if和所有的elseif中的条件表达式都为false,就会执行else中的语句体内容。
实例:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
package com; public class liu { public static void main(String[] args) int a = 0 ; int i = 7 ; if (i > 8 ) { a = 1 ; } else if (i > 7 ) { a = 2 ; } else if (i > 6 ) { a = 3 ; } else { a = 4 ; } System.out.println(a); } } |
switch语句
在处理多个选项时if条件语句显着有些笨拙,这个时候有新的玩法更何乐而不为呢?下面我来介绍switch语句。
结构放在实例讲,下面讲一下执行流程:
1.当程序执行到switch的时候,会进入到switch,会找第一个case进行匹配,如果匹配成功,就进入到case中执行。
2.里面的语句体内容和break。如果没有匹配成功,会继续向下走,找第二个case继续匹配… …。
3.如果所有的case都不匹配,最后会执行default中的语句体内容。
实例:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
package com; public class liu { public static void main(String[] args) { int i = 3 ; switch (i) { case 1 : System.out.println( "1" ); break ; case 2 : System.out.println( "2" ); break ; case 3 : System.out.println( "3" ); //i=3符合case 3所以就执行case里面的命令,其余语句则不管。 break ; default : System.out.println( "3" ); break ; } } } |
case标签:
类型为char、byte、short或int的常量表达式。 枚举常量。 从Java 7 开始,case标签可以是字符串字面量。字符常量实例:
|
1 2 3 4 5 6 7 8 |
String input.... switch (input.tolowerCase()) { case "yes" : ... break ; ... } |
警告:如果case分支语句结尾没有break语句,那么就会接着执行下一个case分支语句。
如果你容易忘记这个茬,可以在前面加上这一个语句,这样一来如果case后面少了一个break,在编译的时候会提示错误。
javac -Xlint:fallthrough Test.java
switch结束标志:
1.break
2.遇到结尾}
结束语
本章主要讲解块作用域、条件语句、switch语句这三个控制结构,后续还会讲解其它的控制结构
到此这篇关于Java基础知识精通块作用域与条件及switch语句的文章就介绍到这了,更多相关Java块作用域内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
原文链接:https://blog.csdn.net/qq_43355770/article/details/123975366
查看更多关于Java基础知识精通块作用域与条件及switch语句的详细内容...