4.1复合语句
复合语句是以整个块区为单位的语句,所以又称块语句,能够用在任何一个单独语句可以用到的地方,并且在复合语句中还可以嵌套复合语句。复合语句有大括号“{”开始,”}”结束。复合语句中的每个语句都是从上到下被执行的。
public class Compound {
public static void main(String[] args) {
int a = 21;
{ //复合语句1 start
int b = 3;
System.out.println("b= "+b); //3
{ //复合语句2 start
int c = 5;
System.out.println("c>b: " + (c>b)); //true
System.out.println("a= "+a); //21
System.out.println("b= "+b); //3
} //复合语句2 end
System.out.println("c= "+c); //编译错误
System.out.println("b= "+b); //3
} //复合语句1 end
System.out.println("b= "+b);//编译错误
System.out.println("a= "+a); //21
}
4.2条件语句
4.2.1if条件语句
1.简单if语句
if语句是Java语言的一个重要语句,用于告诉程序在条件成立的情况下执行某一段语句,否则执行另一段语句。
语句运行流程图
代码示例
package 课本;
public class 例p58 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int phoneNumber = 123456789; //创建变量,保存电话号码
if(phoneNumber != 84972266) { //如果此电话号码不是84972266
System.out.println("对不起,您拨打的号码不存在!"); //提示号码不存在
}
}
}
效果
if...else语句
if...else 语句是条件语句中最常用的一种形式,它会针对某种条件有选择地做出处理。“如果满足某种条件,就进行某种处理,否则就进行另另一种处理。
流程图
package 课件;
public class ye58 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int password = 987654321; //密码值
if(123456789 == password) { //如果密码是123456789
System.out.println("密码正确,欢迎登录"); //密码正确的提示
}else { //否则
System.out.println("密码错误,拒绝登录"); //密码错误的提示
}
}
}
if....else..if语句
if...else..if 语句是条件语句中最常用的一种形式,它会针对某种条件有选择地做出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理
示例代码如下
package 课本;
public class 例p60 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("欢迎光临,请问有多少人就餐?"); //输出问题提示
int count = 9; //用餐人数
System.out.println("回答: " + count + "人"); //输出回答
if(count <= 4) { //如果人数小于4人
System.out.println("客人请到大厅4人桌用餐"); //请到4人桌
}else if(count > 4 && count <= 8) { //如果人数在4~8人
System.out.println("客人请到大厅8人桌用餐"); //请到8人桌
}else if(count > 8 && count <= 16) { //如果人数在8~16人
System.out.println("客人请到楼上包间用餐"); //请到包厢
}else { //当以上条件都不成立时,执行该语句快
System.out.println("抱歉,我们店暂时没有这么大的包厢! "); //输出信息
}
}
}
4.2.2 switch语句
switch语句可以实现根据某一变量选则执行代码块。当然直接使用If语句也可以做到,但是有时候使用switch语句往往更加简洁优美。
示例代码
package 课件;
import java.util.Scanner;
public class ye58 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);//创建扫描器,接收控制台输入的内容
System.out.print("请输入成绩:");//输出字符串
int grade = sc.nextInt();//获取控制台输入的数字
switch (grade) {//使用switch判断数字
case 10://如果等于10,则继续执行下一行代码
case 9://如果等于9
System.out.println("成绩为优");//输出“成绩为优”
break;//结束判断
case 8://如果等于8
System.out.println("成绩为良");//输出“成绩为良”
break;//结束判断
case 7://如果等于7
case 6://如果等于6
System.out.println("成绩为中");//输出“成绩为中”
break;//结束判断
case 5://如果等于5,则继续执行下一行代码
case 4://如果等于4,则继续执行下一行代码
case 3://如果等于3,则继续执行下一行代码
case 2://如果等于2,则继续执行下一行代码
case 1://如果等于1,则继续执行下一行代码
case 0://如果等于0,则继续执行下一行代码
System.out.println("成绩为差");//输出“成绩为差”
break;//结束判断
default://如果不符合以上任何一个结果
System.out.println("成绩无效");//输出成绩无效
}
sc.close();
}
}
4.3循环语句
4.3.1while循环
while 语句也称条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句
package 课件;
import java.util.Scanner;
public class ye58 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int x = 1; //从一开始
int sum = 0; //相加的结果
while(x <= 1000) { //循环1000次
sum = sum + x; //sum与之前计算的和相加
x++; //每次循环后的x的值+1
}
System.out.println("sum = " + sum); //输出最终相加的结果
}
}
4.3.2.do....while循环
do...while循环语句与while循环语句类似,do...while循环为先执行一次循环后在判断是否成立在执行循环体
package 课件;
import java.util.Scanner;
public class ye58 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in); //创建扫描器,获取控制台输入的值
int password; //保存用户输入的密码
do {
System.out.println("请输入6位数字密码:"); //输出提示
password = sc.nextInt(); //将用户在控制台输入的密码记录下来
}while(931567 != password); //如果用户在控制台输入的密码不是931567则继续执行循环
System.out.println("登录成功"); //提示循环结束
sc.close(); //关闭扫描器
}
}
4.3.3for循环
首先执行1次初始值代码,在判断循环条件是否成立,如果循环条件为true,则执行{}里的循环操作代码,执行循环操作后,进行迭代,迭代完再进行循环条件判断,根据循环条件的结果决定是否继续执行循环操作,如果循环条件为false,则结束整个for循环结构,继续往下执行for循环结构之后的代码
package 课件;
import java.util.Scanner;
public class ye58 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[] = {5,13,96}; //一堆整型数值
System.out.println("一堆数组中的元素分别为: ");
//x的类型与arr元素的类型相同.for循环依次取出arr中的值并赋值给x
for(int x : arr) {
System.out.println(x); //输出遍历出的元素值
}
}
}
2.foreach语句
foreach:它是for语句的特殊简化版本,
不能完全取代for语句,但任何foreach都可以改
写为for语句版本
4.4循环控制
4.4.1break语句
使用break可以跳出switch结构,也可以跳出当前循环。
package 课件;
import java.util.Scanner;
public class ye58 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i = 1;i < 20;i++) {
if(i % 2 == 0) { //如果i是偶数
System.out.println(i); //输出i的值
break; //结束循环
}
}
System.out.println("---end---"); //结束时输出一行文字
}
}
4.4.2continue语句
continue不是跳出循环而是跳过循环,回到条件测试部分,重新循环
package 课件;
import java.util.Scanner;
public class ye58 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i = 1;i < 20;i++) {
if(i % 2 == 0) { //如果i是偶数
System.out.println(i); //输出i的值
continue; //结束循环
}
}
System.out.println("---end---"); //结束时输出一行文字
}
}