1.复合语句
public class Compound {
public static void main(String[] args) {
// TODO Auto-generated method stub
int x = 20;
{
int y = 40;
System.out.println(y);
int z = 245;
boolean b;
{
b = y > z;
System.out.println(b);
} //复合语句
}
String word = "hell java";
System.out.println(word);
}
}
2.条件语句
1.if条件语句
if条件语句是一个重要的编程语句,用于告诉程序在某个条件成立的条件的情况下执行某段语句,而在另一种情况下执行另外的语句。
使用if条件语句,可选择是否要执行紧跟在条件
判断手机号码是否存在
public class TakePhone {
public static void main(String[] args) {
// TODO Auto-generated method stub
int phoneNumber = 123456789; //创建变量,保存电话号码
if(phoneNumber!= 84972266) { //如果此电话号码不是84972266
System.out.println("对不起,您拨打的号码不存在!"); //提示号码不存在
}
}
}
结果如下

流程图如下

1.if...else语句
if...else是条件语句中最常用的一种形式,它会针对某种条件有选择的做出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”。
使用if...else语句校验密码
public class Login {
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("密码错误,拒绝登录"); //密码错误的提示
}
}
}
结果如下

流程图如下

2.if...else if多分支语句
if...else if多分支语句用于针对某一事件的多种情况进行处理。通常表现为“如果满足某种条件,就进行某种处理,否则如果满足另一种条件则执行另一种处理”。
使用if..else if语句实现饭店座位分配
public class Restaurant {
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("抱歉,我们店没有这么大的包厢!"); //输出信息
}
}
}
结果如下

流程图如下

2.Switch多分支语句
Switch语句首先计算表达式的值,如果表达式的计算结果和某个case后面的常量值相同,则执行该case语句后的若干个语句直到遇到break语句为止。若没有一个常量的值与表达式相同,则执行default后面的语句。default语句为可选的,如果它不存在,且Switch语句中表达式的值不与任何case的常量值相同,Switch语句则不做处理。
使用Switch语句为考试分数分级
import java.util.Scanner; //引入Scanner类
public class Grade {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in); //创建扫描器,接收控制台输入内容
System.out.println("请输入成绩:"); //输出字符串
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(); //关闭扫描器
}
}
结果如下




流程图如下

3.循环语句
1.while循环语句
while语句也称条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句。
语法如下:
while(条件表达式){
语法序列
}
当条件表达式的返回值为真时,则执行"{}"中的语句,当执行完"{}"中的语句后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。
创建Getsum类,在主方法中通过
public class GetSum {
public static void main(String[] args) {
// TODO Auto-generated method stub
int x = 1; //从1开始
int sum = 0; //相加的结果
while (x <= 1000) { //循环1000次
sum = sum + x; //sum与之前计算的和相加
x++; //每次循环后的x值+1
}
System.out.println("sum =" + sum); //输出最终的相加结果
}
}
结果如下

流程图如下

2.do...while循环语句
do...while循环语句与while语句类似,它们之间的区别是while语句为先判断条件是否成立再执行循环体,而do...while循环语句则先执行一次循环后,再判断条件是否成立。也就是说,do...while循环语句“{}”中的程序段至少要被执行一次。
使用de...while语句进行用户登录验证
创建LoginService类,首先提示用户输入6位密码,然后使用Scanner扫描器类获取用户输入的密码,最后进入do...while循环进行判断,如果用户输入的密码不是“931567”,则让用户反复输入,直到输入正确密码为止。
import java.util.Scanner;
public class LoginService {
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(); //关闭扫描器
}
}
结果如下

流程图如下

3.for循环语句
for循环是java程序设计中最有用的循环语句之一。一个for循环可以用来重复执行某条语句,直到某个条件得到满足。for循环有两种语句,一是传统的for语句,一种是foreach语句。
for语句
传统的for语句中有3个表达式,其语法如下:
表达式1:初始化表达式,负责完成变量的初始化。
表达式2:循环条件表达式,值为boolean型的表达式,指定循环条件。等同于while循环里的表达式。
表达式3:每次循环结束后执行的
使用for循环计算2~100的所有偶数之和
public class Circulate {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0; //偶数相加后的结果
for (int i = 2;i <= 100;i += 2){
sum = sum + i; //指定循环条件及循环体
}
System.out.println("2+4+6+8......+100的值:" + sum); //将相加后的结果输出
}
}
结果如下

流程图如下

2.foreach语句
foreach语句是for语句的特殊简化版本,不能完全取代for语句,但如何foreach语句都可以改写为for语句版本。foreach并不是一个关键字。习惯上将这种特殊的for语句格式称为foreach语句。foreach语句在历代数组等方面为程序员提供了很大的方便。
使用foreach语句遍历整型数组
public class Repetition {
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); //输出遍历中的元素值
}
}
}
结果如下

流程图如下

循环控制
break语句
使用break语句可以跳出Switch结构。在循环结构中,同样也可用break语句跳过当前循环体,从而中断当前循环
输出1~20出现的第一个偶数
public class BreakTest {
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---"); //结束时输出一行文字
}
}
结果如下

流程图如下

使用标签让break结束外层循环
public class BreakInsideNested {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i = 1;i <=3;i ++) { //外层循环
for(int j = 1;j <= 5;j ++) { //内层循环
if(j == 4) { //内层循环至第四次时就结束
break;
}
System.out.println("i="+ i +" j="+ j); //输出i和j的值
}
}
}
}
结果如下

流程图如下

continue语句
continue语句是针对break语句的补充。continue不是立即跳出循环体,而是跳过本次循环,回到循环的条件测试部分,重新开始执行循环。在for循环语句中遇到continue后,首先执行循环的增量部分,然后进行条件测试,在while和do...while循环中,continue语句使控制直接回到条件测试部分。
输出1~20的奇数
public class ContinueTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i = 1;i <= 20;i ++) {
if(i %2 == 0) { //如果i是偶数
continue; //跳到下一循环
}
System.out.println(i); //输出i的值
}
}
}
结果如下

流程图如下

总结:
学会了复合语句,条件语句,循环语句,循环控制语句