0.前定义
语句块(有时叫做复合语句),是用花括号扩起的任意数量的简单Java语句。
块确定了局部变量的作用域。块中的程序代码,作为一个整体,是要被一起执行的。
块可以被嵌套在另一个块中,但是不能在两个嵌套的块内声明同名的变量。
语句块可以使用外部的变量,而外部不能使用语句块中定义的变量,因为语句块中定义的变量作用域只限于语句块。
1 public class Test { 2 public static void main(String[] args) { 3 int n; 4 int a; 5 { 6 int k; 7 int n; //编译错误:不能重复定义变量n 8 } //变量k的作用域到此为止 9 } 10 }
Java里的语句可分为以下六类
- 方法调用语句:如:System.out.println(" Hello");
- 表达式语句:表示式尾加上分号。比如赋值语句:x=23;
- 复合语句:可以用{ }把一些语句括起来构成复合语句, 如:{ z=123+x; System.out.println("How are you"); }
- 空语句:一个分号也是一条语句,称做空语句。
- 控制语句:控制语句分为条件分支语句、开关语句和循环语句。
- package语句和 import语句:它们和类、对象有关,package是java放在哪,import指定导入包
1.综述
流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。
控制语句分为三类:顺序、选择和循环。
顺序结构:代表“先执行a,再执行b”的逻辑。
选择结构:代表“如果…,则…”的逻辑,
循环结构:代表“如果…,则再继续…”的逻辑。
递归结构:自己调用自己
迭代结构:不停调用另一个
2.介绍
2.1 选择结构
选择结构用于判断给定的条件,然后根据判断的结果来控制程序的流程。
有如下结构:
if单选择结构
if-else双选择结构
if-else if-else多选择结构
switch结构
2.1.1 if单选择结构
if语句是单条件分支语句,即根据一个条件来控制程序执行的流程
if(布尔表达式){ 语句块 }
if语句对布尔表达式进行一次判定,
若判定为真,则执行{}中的语句块,否则跳过该语句块
if(count >= 10 && count <= 15) { //错误写法:10<=count<=15 System.out.println("1"); }
注意:如果if语句不写{},则只能作用于后面的第一条语句。
表达式的值必须是boolean型的;不能用0代表false;用1代表true;
//例子2将变量a,b,c内存中的数值按大小顺序进行互换(从小到大排列)。 public class Example3_2 { public static void main(String args[]) { int a = 9,b = 5,c = 7,t=0; if(b<a) { t = a; a = b; b = t; } if(c<a) { t = a; a = c;c = t; } if(c<b) { t = b; b = c; c = t; } System.out.println("a="+a+",b="+b+",c="+c); } }
2.1.2 if-else双选择结构
if-else 语句是双条件分支语句,即根据一个条件来控制程序执行的流程
if(布尔表达式){ 语句块1 }else{ 语句块2 }
当布尔表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。
if (a<b) { System.out.println(a); } else { System.out.println(b); }
注意:条件运算符有时候可用于代替if-else
System.out.println((a<b)?a:b);
2.1.3 if-else if-else多选择结构
if-else-if 语句是多条件分支语句,即根据多个条件来控制程序执行的流程
if(布尔表达式1) { 语句块1; } else if(布尔表达式2) { 语句块2; }……else if(布尔表达式n){ 语句块n; } else { 语句块n+1; }
当布尔表达式1为真时,执行语句块1;否则,判断布尔表达式2,当布尔表达式2为真时,执行语句块2;否则,继续判断布尔表达式3······;如果1~n个布尔表达式均判定为假时,则执行语句块n+1,也就是else部分。
1 if (age < 15) { 2 System.out.println("儿童"); 3 } else if (age < 25) { 4 System.out.println("青年"); 5 } else if (age < 45) { 6 System.out.println("中年"); 7 } else if (age < 65) { 8 System.out.println("中老年"); 9 } else if (age < 85) { 10 System.out.println("老年"); 11 } else { 12 System.out.println("老年"); 13 }
2.1.4 switch多选择结构
switch 语句是单条件多分支的开关语句
它的一般格式定义如下(其中break语句是可选的):
switch(表达式) { case 常量值1: 若干个语句 break; case 常量值2: 若干个语句 break; ... case 常量值n: 若干个语句 break; default: 若干语句 }
说明:
1)表达式的值必须是:byte,short, Int,char不能是String或者long型的; (与int兼容类型)
2)default语句放的位置是任意的。
3)检查时case 常量必须与switch表达式 可用的类型相同。
4)switch语句会根据表达式的值从相匹配的case标签处开始执行,
一直执行到break语句处或者是switch语句的末尾。
如果表达式的值与任一case值不匹配,则进入default语句(如果存在default语句的情况)。
1 public class Test{ 2 public static void main(String[] args) { 3 char c = 'a'; 4 int rand = (int) (26 * Math.random()); 5 char c2 = (char) (c + rand); 6 System.out.print(c2 + ": "); 7 switch (c2) { 8 case 'a': 9 case 'e': 10 case 'i': 11 case 'o': 12 case 'u': 13 System.out.println("元音"); 14 break; 15 case 'y': 16 case 'w': 17 System.out.println("半元音"); 18 break; 19 default: 20 System.out.println("辅音"); 21 } 22 } 23 }