02-Java流程控制
2.1 条件语句
条件语句就是根据不同的条件执行不同的语句,条件语句包括if条件语句和switch多分枝条件语句。
2.1.1 if条件语句
if 条件语句它用于某个条件成立时,执行某一段程序,而另外一种情况系啊执行另外的语句,关键字if之后就是作为条件的布尔表达式,如果该表达式返回的结果为true,则执行其后面的语句,如果为false则不执行if条件之后的语句。if条件语句可以分为单分支if、双分支 if...else 和if...else if多分支。
单分支
if (布尔表达式) {
语句序列
}
布尔表达式:必要的参数,表示它最后返回的结果必须是一个布尔值。
if...else语句
if...else语句是最常用的一种形式,如果满足某种条件,就执行某种处理,否则就执行另外一种处理,语法格式为:
布尔表达式:必要的参数,表示它最后返回的结果必须是一个布尔值。
if...else if语句
if...else if多分支语句用于针对某一件事的多种情况进行处理。表现为:如果满足某种条件,就进行某种处理,如果满足另外一种,就执行另外一种处理,语法格式为:
if (条件表达式1) {
需要执行的语句
}
else if(条件表达式2) {
需要执行的语句
}
else if(条件表达式3) {
需要执行的语句
}
条件表达式:必要的参数,表示它最后返回的结果必须是一个布尔值。
2.1.2 switch多分支语句
switch(表达式) {
case常量值1:
语句块1;
break;
case常量值2:
语句块2;
break;
case常量值n:
语句块n;
break;
default:
语句块n+1;
break;
}
switch语句表达式的值必须是整数型或字符型,常量值1-n必须也是整形或字符型。首先计算表达式的值,如果表达式的值和某个case后面的常量值相同,则执行该case后面的语句。default语句为可选的,如果它不存在,而且switch语句表达式的值不和任何case的常量相同,switch则不做任何处理。
public class Getif {
public static void main(String[]args) {
System.out.println("今天是星期几:");
int week = 2;
switch (week) {//指定switch语句的表达式为变量week
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
default:
System.out.println("输入有错");
}
}
}
case的值可以为整数,但是绝不可以是实数,下面的代码时不和法的
case 1.1;
常量的表达式的值可以是字符,但是一定不能是字符串
case "ok" //错误
验证登录信息
import java.util.Scanner;
public class CheckLongin {
public static void main (String[]args) {
//接收用户输入的登录用户名和登录密码
//然后通过if条件语句判断用户名和密码是否正确
//并输出登录验证的结果
Scanner scanner = new Scanner(System.in);
//创建扫描器,接收用户输入
System.out.println("请输入用户名");
String username = scanner.nextLine();//接收用户输入
System.out.println("请输入密码");
String password = scanner.nextLine();//接收用户输入的密码
if (! username.equals("admin")) {
System.out.println("用户名非法");
}else if (password.equals("1234556")) {
System.out.println("登录密码错误");
}else {
System.out.println("登录成功");
}
}
}
为新员工分配部门
import java.util.Scanner;
public class Example {
public static void main(String[]args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入新员工姓名:");
String name = scanner.nextLine();//接收员工姓名
System.out.println("输入新员工应聘的编程语言:");
String language = scanner.nextLine();//接收员工应聘的编程语言
switch (language.hashCode()) {
case 3254818:
case 2301506:
case 2269730:
System.out.println("员工" + name + "被分配到Java部门");
break;
case 3104:
case 2112:
System.out.println("员工" + name + "被分配到C++部门");
break;
default:
System.out.println("公司不需要" + language + "开发");
}
}
}
在switch中,每个case关键字就是一个条件的分支,但是对于多个条件相同业务处理情况,可以把多个case分支关联在一起,省略它们之间的break语句。
2.2 循环语句
循环语句就是在满足一定条件的下反复执行某一个操作,Java提供了3种常用的循环,分别是while循环,do..while循环和for循环。
2.2.1 while循环语句
while (条件表达式) {
//执行的语句
}
当条件表达式返回的值为真,则执行{ }中的语句,执行完 { } 中的语句后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。
public class GetSum {
public static void main(String[] args) {
//通过while循环将整数1-10相加
int x = 1;//定义int型变量x
int sum = 0;//定义变量用于保存相加后的结果
while (x <= 10) {
sum = sum + x;
x++;
//while循环语句,当变量满足条件表达式时
//执行循环语句
}
System.out.println("1到10的和是:" + sum);
}
}
2.2.1 do...while循环语句
do...while循环和while循环类似,它们的区别就是while循环先判断条件是否成立,再执行循环体,do...while循环则先执行一次循环后,再判断条件是否成立。do...while循环语句中程序至少被执行一次。
do {
执行的语句
}
while (条件表达式);
2.2.2 for 循环语句
for (表达式1; 表达式2; 表达式3;) {
需要执行的语句;
}
表达式1:初始化表达式,负责完成变量的初始化。
表达式2:循环条件表达式,值为boolean,指定循环的条件。
表达式3:循环后操作表达式,负责修整变量,改变循环条件。
执行for循环时,首先执行表达式1,完成某一变量的初始化工作;下一步判断表达式2的值,如果表达式2的值为true,进入循环体;在执行完循环体后计算表达式3,表达式3通常是增加或减少循环控制变量的一个表达式,这样子循环就结束了。第二轮循环从计算表达式2开始,如果表达式2返回true,继续循环,否则跳出整个for语句。
public class Circulate {
public static void main(String[] args) {
//使用for循环计算2-100之间所有偶数的和
int sum = 0;
for (int i = 2; i <= 100; i+=2) {
sum = sum + i;
}
System.out.print("2-100之间的所有偶数的和为" + sum);
}
}
2.2.3 foreach 循环语句
foreach 是 for循环的特殊简化版本,foreach循环在遍历数组方便有很大的遍历,语法格式如下:
for (匀速变量x: 遍历对象obj) {
引用了x的java语句;
}
public class Repetition {
public static void main(String[] args) {
//使用foreach语句遍历数组
int arr[] = {7,10,1};
for (int x: arr) {
System.out.println(x + "\t");
}
}
}
2.3 跳转语句
Java提供了3种跳转语句,分别是break、continue、return。
2.3.1 break语句
break可以应用在循环语句,用于强行对出循环,也就是忽略循环体中任何其他语句和循环的条件限制。
2.3.2return 语句
return语句可以从一个方法返回,并把控制权交给调用它的语句,语法格式如下:
return 表达式;
表达式:可选参数,表示要返回的值,它的数据类型必须和方法声明中的返回值欸行一致。
return语句通常放在被调用方法的最后,用于退出当前方法,并返回一个值。