目录
一、选择结构 if
1、if语句
if语句是指如果满足某种条件,就进行某种处理。
- 书写格式 :
if(比较表达式) {
语句体1;
}
- 执行流程:
- 先计算比较表达式的值,看其返回值是true还是false
- 如果是true,就执行语句体
- 如果是false,就不执行语句体
- 案例代码:
public class IfDemo{
public static void main(String[] args){
int i = 5 ;
//对变量i进行if判断
if(i > 5){
System.out.println("if中的条件是true");
i++;
}
System.out.println(i);
}
}
2、if...else语句
if…else语句是指如果满足某种条件,就进行某种处理,否则就进行另一种处理。
- 书写格式
if(比较表达式) {
语句体1;
} else {
语句体2;
}
- 执行流程:
- 首先计算比较表达式的值,看其返回值是true还是false
- 如果是true,就执行语句体1
- 如果是false,就执行语句体2
- 案例代码
public class IfElseDemo{
public static void main(String[] args){
int i = 16;
//判断变量,是奇偶数, 除以2,看余数是0还是1
if( i % 2 == 0 ){
System.out.println(i+" 是偶数");
} else {
System.out.println(i+" 是奇数");
}
}
}
3、if...else if...else语句
if…else if…else语句用于对多个条件进行判断,进行多种不同的处理。
- 书写格式
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
} ... else { 语句体n+1; }
- 执行流程:
- 首先计算比较表达式1看其返回值是true还是false
- 如果是true,就执行语句体1,if语句结束
- 如果是false,接着计算比较表达式2看其返回值是true还是false
- 如果是true,就执行语句体2,if语句结束
- 如果是false,接着计算比较表达式3看其返回值是true还是false
- 如果都是false,就执行语句体n+1
- 案例代码:
public class IfElseIfDemo{
public static void main(String[] args){
//成绩判断要求 ,成绩>80 成绩>70 成绩>60 不及格
//定义变量,保存成绩
int grade = 75;
//使用if else if 语句对成绩判断
if(grade > 80){
System.out.println(grade+" 成绩是优");
}else if(grade > 70){
System.out.println(grade+" 成绩是良");
}else if (grade > 60){
System.out.println(grade+" 成绩是中");
}else{
System.out.println(grade+" 成绩是差");
}
}
}
4、 if语句和三元运算符的互换
1)、三元运算符
- 概念:用来完成简单的选择逻辑,即根据条件判断,从两个选择中选择一 种执行
- 使用格式:(条件表达式) ? 表达式1 : 表达式2;
- 运算规则:判断条件表达式,结果为一个布尔值;结果若为true,运算结 果为表达式1;结果若为false,运算结果为表达式2
2)、案例代码
public class IfElseDemo_1{
public static void main(String[] args){
int i = 15;
int j = 6;
//使用if语句,判断出最大值
if(i > j){
System.out.println(i + " 是最大值");
} else {
System.out.println(j + " 是最大值");
}
//使用三元运算实现
int k = i>j ? i : j;
System.out.println(k+" 是最大值");
}
}
3)、使用if语句还是三元表达式
- 判断条件多,使用if
- 三元表达式,必须有结果的,if 可以没有结果的
二、循环语句 while
1、循环语句 while
while循环语句和选择结构if语句有些相似,都是根据条件判断来决定是否执行大括号 内的执行语句。区别在于,while语句会反复地进行条件判断,只要条件成立,{}内的执行 语句就会执行,直到条件不成立,while循环结束。
- 书写格式
while(循环条件){
循环体;
}
- 执行流程:
- 当条件是true,就执行循环体,执行完循环体后
- 程序再次执行while中的条件,如果条件还是true,继续执行循环体
- 直到条件是false的时候,循环就结束
- 案例代码:
public class WhileDemo{
public static void main(String[] args){
//输出 1-4之间的整数
//定义变量,整数类型, 循环的条件
int i = 1;
while(i < 5){
System.out.println(i);
i++;
}
}
}
三、循环语句 for
1、for循环语句
for循环语句是最常用的循环语句,一般用在循环次数已知的情况下。
- 书写格式
for(初始化变量; 条件; 增量){
循环体;
}
- 各模块解释:
- 初始化变量:定义变量,作用是用来控制循环的次数
- 条件:当条件是true,执行循环体,条件是false,结束循环
- 增量:变量自增情况
- 执行流程:
for(①; ②; ③){
④;
}
- 第一步,执行①
- 第二步,执行②,如果判断结果为true,执行
- 第三步,如果判断结果为false,执行 第五步 第三步,执行④
- 第四步,执行③,然后重复执行第二步
- 第五步,退出循环
- 案例代码
public class ForDemo_1{
public static void main(String[] args){
/*
* 利用for循环,计算1+4的结果
*/
// 定义变量,记录求和后的数据
int sum = 0;
// 利用循环,将变量从1变化到4
for(int i = 1 ; i <= 4 ; i++){
//对变量进行求和
sum = sum + i;
}
System.out.println(sum);
}
四、循环语句 do...while
1、do…while循环语句
do…while循环语句和while循环语句功能类似
- 书写格式 do{ 循环体; }while(条件);
- 执行流程
- 先执行一次循环体,然后再判断条件
- 如果条件为true,继续执行循环体
- 如果条件为false,循环结束
- 特点:无条件先执行一次
- 案例代码
public class DoWhileDemo{
public static void main(String[] args){
int i = 0;
do{
System.out.println(i);
i++;
}while( i < 5);
}
}
五、无限循环(死循环)
无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环
- 书写格式:
while(true){
} for(;;){
}
六、 嵌套循环
嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while、 do…while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见的在for 循环中嵌套for循环。
- 书写格式
for(初始化表达式; 循环条件; 操作表达式) {
……
for(初始化表达式; 循环条件; 操作表达式) {
执行语句
……
}
}
- 各模块解释:
- 总的循环次数 = 内循环次数 * 外循环的次数
- 内循环,是外循环的循环体
- 外循环,控制的是行数
- 内循环,控制的是每行的个数
public class ForForDemo{
public static void main(String[] args){
// 打印直角三角形
for(int i = 0 ; i < 9 ; i++){
for(int j = 0; j < i+1 ;j++){
System.out.print("* ");
}
System.out.println();
}
}
}
七、跳出语句
跳转语句用于实现循环执行过程中程序流程的跳转,在Java中的跳转语句有break语句 和continue语句。
1、break语句
- 作用:跳出所在的循环体
- 使用方式:无法单独使用,必须将break关键字置于switch或循环语句中
- 运行规律:
- 不需要判断任何条件,只要遇到break变直接跳出执行后续代码。会完全 跳出选择或者循环结构
- 只能跳出最近的代码块,不能跨越多级代码块
- 案例代码
public class BreakDemo{
public static void main(String[] args){
for(int i=0; i<10; i++) {
if(i>5) {
break;
}
System.out.println(“我爱Java”+i);
}
//会从0-5输出6次“我爱Java”
}
}
2、 continue语句
- 作用:提前结束本次循环,继续进行下次循环
- 使用方式:无法单独使用,必须将continue关键字置于循环语句中
- 运行规律:
- 不需要判断任何条件,只要遇到continue变直接跳出本轮循环进行下次循环
- 只是跳过本轮循环,并非跳出当前循环
- 案例代码
public class ContinueDemo{
public static void main(String[] args){
for(int i = 0 ; i < 10 ; i++){
if(i%2==0){
continue;
}
System.out.println(i);
}
//会把0-9之间所有的奇数打印到控制台上
}
}
八、选择结构 switch
switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表 达式的值作出判断,从而决定程序执行哪一段代码。
- 书写格式
switch(表达式) {
case 常量1:
要执行的语句1;
break;
case 常量2:
要执行的语句2;
break;
case 常量3:
要执行的语句3;
break;
......
default:
要执行的语句n;
break;
}
- 执行流程: switch中的表达式和case后面的常量进行比较和哪个case后的常量相同,就执行哪 个case后面的程序,遇到break,就全结束
- 关键字:switch case default break
- 举例
- 如果等于1,则输出星期一
- 如果等于2,则输出星期二
- 如果等于3,则输出星期三
- 如果等于4,则输出星期四
- 如果等于5,则输出星期五
- 如果等于6,则输出星期六
- 如果等于7,则输出星期天
- 案例代码
ublic class SwitchDemo01 {
public static void main(String[] args) {
int week = 5;
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;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期天");
break;
default:
System.out.println("输入的数字不正确...");
break;
}
}
}
- 注意事项:switch语句中的表达式的数据类型,是有要求的
- JDK1.0 - 1.4 数据类型接受 byte short int char
- JDK1.5 数据类型接受 byte short int char enum(枚举)
- JDK1.7 数据类型接受 byte short int char enum(枚举), String
- case穿透:
- 在使用switch语句的过程中,如果多个case条件后面的执行语句是一样 的,则该执行语句只需书写一次即可,这是一种简写的方式。
- 例如:要判断一周中的某一天是否为工作日,同样使用数字1~7来表示星 期一到星期天,当输入的数字为1、2、3、4、5时就视为工作日,否则就 视为休息日。
- 案例代码
public class SwitchDemo02 {
public static void main(String[] args) {
int week = 5;
switch (week) {
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("今天是工作日");
break;
case 6:
case 7:
System.out.println("今天是休息日");
break;
default:
System.out.println("输入的数字不正确...");
break;
}
}
}