复合语句
Java中的复合语句是以整个块区为单位的语句,所以又称块语句。复合语句是有“{”开始,“}”结束的语句。对于复合语句中的每个语句都是从上到下被执行的。复合语句可以用在任何一个单独语句可以用到的地方,并且复合语句是可嵌套的。
注意:复合语句为局部变量创建了一个作用域,只能在此作用域中使用此变量。
条件语句
if条件语句
if语句是用于在某条件成立的情况下执行某段程序,而在另一种情况下执行另一段代码。if的后面跟着一个“布尔表达式”作为条件,表达式的结果为true则执行后面语句块中代码,否则不执行。if语句可分为简单的if语句、if...else语句和if...else if多分支语句。
1、简单if条件语句
语法格式:
布尔表达式:必要参数,表示最后返回的结果必须是布尔值,它可以是一个布尔变量和常量,或者使用关系或布尔运算符的表达式。
语句序列:可选参数,可以是一条或多条语句,布尔表达式的结果 为true时执行。如果语句序列中仅有一条语句,大括号可以省略。
int a = 100; if(a == 100) System.out.println("a的值为:" + a);
注意:虽然if语句后面的大括号可以省略,但是为了程序的阅读性,建议还是不要省略。
2、if...else语句
if...else语句表示为,如果满足某种条件,就进行某种处理,否则就进行另一种处理。语法格式如下:
同if语句一样,表达式的结果必须是boolean类型的,为true执行表达式后面的语句块,为false执行else后面的语句块。
3、if...else if多分支语句
if...esle if语句是针对某一事件的多种情况进行处理。通常表示为“如果满足条件,就进行某种操作,否则如果满足另一种条件就进行另一种操作”。语法格式如下:
注意:if语句只执行条件为true的命令语句,其他语句都不会执行。
import java.util.Scanner; public class Demo { public static void main(String[] args) { //创建扫描器 Scanner scan = new Scanner(System.in); System.out.print("请输入用户名:"); //获得输入的值 String userName = scan.nextLine(); System.out.println("请输入密码:"); //获得输入的值 String password = scan.nextLine(); //判断用户名 if (!userName.equals("wc")) { System.out.println("用户名非法"); } else if (!password.equals("wcsoft")) {//判断密码 System.out.println("登录密码错误"); } else { System.out.println("登录成功"); } } }
switch多分支语句
在编程中比较常见的问题就是检测一个变量是否符合某个条件,如果不匹配就用另一个值来检测,以此类推。当然这个问题if语句也可以处理,但是比较笨重,这种情况推荐使用switch语句。在Java中,可以使用switch语句将动作组织起来,以一种简单明了的方式来实现“多对一”的选择。语法如下:
switch语句中表达式的值必须是整型或字符型,在JDK1.7之后支持String类型。如果表达式的值和某个case后面的值相同,则执行case后面的语句直到遇到break语句为止。此时的case语句中没有break语句,就继续执行,知道遇到break或大括号为止。default语句是可选的,表示默认,如果没有一个常量值与表达式的值相同,则执行default。
注意:同一个switch语句,case常量值必须互不相同。常量值不可以是字符串。
import java.util.Scanner; public class Demo { public static void main(String[] args) { // 创建扫描器 Scanner scan = new Scanner(System.in); // 获得输入 int achievement = scan.nextInt(); // 成绩对10取余 achievement = achievement % 10; // 根据成绩判断学生的等级 switch (achievement) { case 9: System.out.println("优"); break; case 8: System.out.println("良"); break; case 7: System.out.println("中"); break; case 6: System.out.println("差"); break; default: if (achievement >= 0 && achievement <= 10) { System.out.println("不及格"); } else { System.out.println("输入的数不是有效分数"); } break; } } }
循环语句
循环语句就是在满足一定条件的情况下反复执行的某一个操作。Java中提供了三种循环语句,分别是:while语句、do...while语句和for循环。
while语句
while语句也成为条件判断语句,循环方式:利用条件来控制是否继续反复执行这个语句。语法如下:
当条件返回的结果为真则执行语句块,并重新判断条件,知道条件不满足时退出循环。
public class Demo { public static void main(String[] args) { int a = 100; while (a > 60) { // System.out.println(a); a--; } System.out.println(a); } }
do...while语句
do...while语句与while语句类似,它们之间的区别是while语句是先判断条件知否成立在执行循环体,do...while语句是先执行一遍循环体在判断条件是否成立。也就是说do...while语句循环体至少被执行一次。语法如下:
public class Demo { public static void main(String[] args) { int b = 100; do { b--; } while (b == 60); System.out.println(b); } }
for循环
for循环是Java程序设计中最常用的循环语句。一个for循环可以用来重复执行某条语句,知道某个条件得到满足。在JDK1.5之后新增了foreach语法,又称增强for循环,语法上更为简洁。
for语句
语法如下:
表达式1:初始化表达式,负责完成变量的初始化。
表达式2:循环条件表达式,值为boolean型的表达式,指定循环条件。
表达式3:循环后操作表达式,负责修整变量,改变循环条件。
for循环的执行循序:
首先执行表达式1,完成变量的初始化工作;下一步 判断表达式2的值,为true进入循环体;执行完循环体后执行表达式3,这部分通常是增加或减少循环控制变量的一个表达式。直到循环条件不满足时跳出循环。
/** * 打印九九乘法表 * * @author Administrator * */ public class Demo { public static void main(String[] args) { // 外层循环 被乘数 for (int i = 1; i <= 9; i++) { // 内层循环 乘数 for (int j = 1; j <= i; j++) { // 打印九九乘法表 System.out.print(j + "*" + i + "=" + j * i + "\t"); } // 输出换行 System.out.println(); } } }
foreach语句
foreach语句是for语句的特殊简化版,foreach并不能完全取代for循环,然而任何的foreach语句都可以改写成for循环。
foreach语句中的变量x,不必对其进行初始化。foreach语句在遍历数组方面提供了很大的方便。
public class Demo { public static void main(String[] args) { // 定义一个数组 int[] arr = { 1, 2, 3, 4 }; // 遍历数组 for (int i : arr) { System.out.print(i + "\t"); } } }
跳转语句
Java中提供了3种跳转语句,分别是break、continue和return。
break语句
break语句在switch中是用于终止下面的case,也可以用在循环语句中,表示结束循环,也就是忽略循环体中任何其他语句和循环条件的限制。
注意:在循环语句嵌套的情况下break是只能结束当前循环,想要结束外层循环可以使用标记来实现。
public class Demo { public static void main(String[] args) { // 定义一个变量 int a = 100; // 循环 a: while (a > 60) { a--; break a; } System.out.println(a); } }
continue语句
continue语句只能用于循环语句中,表示跳出本次循环,进行下一次循环。
/** * 输出10以内的全部奇数 * * @author Administrator * */ public class Demo { public static void main(String[] args) { // 定义一个变量i int i = 0; // 循环 while (i < 10) { i++; // 如果i对2取余等于0就跳出本次循环 if (i % 2 == 0) { continue; } // 输出i的值 System.out.print(i + "\t"); } } }
return语句
return语句可以从一个方法返回,并把控制权交给调用它的语句。语法如下:
表达式:可选参数,表示要返回的值。它的数据类型必须与方法中声明的返回值类型一致,可以通过强制类型转换实现。
return语句通常被放在调用方法的最后,用于退出当前方法并返回一个值。
参考文献《Java从入门到精通》