Java基础复习-04判断和循环

本文详细介绍了Java编程中的流程控制语句,包括顺序结构、分支结构(if、if...else、if...elseif...else)和循环结构(for、while、do...while)。特别强调了if和switch的区别以及switch的使用注意事项,还提到了循环中的continue和break关键字的用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流程控制语句

1.顺序结构

int a = 4;
int b = 5;
System.out.println(a+b);

比如上面的代码执行顺序是从上往下,这就是顺序结构

总结来说就是:

顺序结构语句是Java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行

2.分支结构

if语句

作用:可以判断条件来决定执行哪个分支

格式1:

       if(关系表达式){
        语句体;
        }

执行流程:

  1. 首先计算关系表达式的值

  1. 如果关系表达式的值为true就执行语句体

  1. 如果关系表达式的值为false就不执行语句体

  1. 继续执行后面的其他语句

举例:判断一个人是否成年,条件是年龄age大于等于18则该人已成年

用代码表示:

int age = 32;
if(age >= 18){ //小括号中的就是判断条件,符合则执行小括号后大括号内的语句
System.out.println("您已满18岁,已成年。");
}

格式2:

       if(关系表达式){
        语句体1;
        }else{
        语句体2;
        }

执行流程:

1.首先计算关系表达式的值

2.如果关系表达式的值为true就执行语句体1

3.如果关系表达式的值为false就执行语句体2

4.继续执行后面的其他语句

同样按照上面判断是否成年的例子

用代码表示:

int age = 15;
if(age >= 18){ //小括号中的就是判断条件,符合则执行小括号后大括号内的语句
System.out.println("您已满18岁,已成年。");
}else{// else的作用就是if()括号内的条件不满足那么则执行else后面大括号{}内的语句
  System.out.println("您未满18岁,未成年。");
}
// 分析:age=15小于18不满足条件则不能执行(age >= 18)后面大括号{}里的内容,那么它只能执行else后大括号里的内容。即System.out.println("您未满18岁,未成年。");

格式3:

       if(关系表达式1){
        语句体1;
        }else if(关系表达式2){
        语句体2;
        }else{
        语句体3;
        }

执行流程:

  • 首先计算关系表达式1的值

  • 如果为true就执行语句体1;如果为false就计算关系表达式2的值

  • 如果为true就执行语句体2;如果为false就计算关系表达式3的值

  • .........

  • 如果所以关系表达式结果都为false,就执行语句体n+1。

同样按照上面判断是否成年的例

用代码表示:

int age = 49;
if(age >= 18 && age <120){ //小括号中的就是判断条件,符合则执行小括号后大括号内的语句
  System.out.println("您已满18岁,已成年。");
}else if(age < 18){
  System.out.println("您未满18岁,未成年。");
}else{
  System.out.println("您的年龄输入有误");
}

注意:else if()可能会有多个表示多个条件的判断,但是else只有一个

switch语句

作用:根据表达式的值来进行值匹配选择对应的分支执行。

格式:

switch(表达式){
case值1:
    执行代码...;
    break;
case值2:
    执行代码...;
    break;
case值n-1:
    执行代码...;
    break;
default:
    执行代码n;
    break;
}

执行流程:

  1. 首先计算表达式的值。

  1. 依次和case后面的值进行比较如果有对应的值,就会执行相应的语句,在执行的过程甲,遇到break就会结束。

  1. 如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句。

default的位置和省略

1.位置 :defaule不一定是写在最下面的,我们可以写在任意位置。只不过习惯会写在最下面

2.省略: defaule可以省略,语法不会有问题,但是不建议省略。

if和switch的区别
  • 都是做分支操作的

  • if的功能更强大适合做区间匹配

  • 如果是值匹配的操作建议用switch,格式清晰,性能较好!!

switch的注意事项

表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long。

case给出的值不允许重复,且只能是字面量,不能是变量。

不要忘记写break,否则会出现穿透现象。

switch的穿透性

是什么?

switch中没有写break,遇到了这个case会一直往下走,直到遇到break才会跳出

适合做什么?

多个值对应的case块的操作是相同的!可以穿透到一个位置集中处理,这样可以提高开发效率,降低代码重复。

swith新特性

// JDK12之前的旧格式
int number = 1;
switch (number){
    case 1 :
        System.out.println("一");
        break;
    case 2 :
        System.out.println("二");
        break;
    case 3 :
        System.out.println("三");
        break;
    default :
        System.out.println("没有这种选项");
        break;
    
 }

// JDK12及以后的新格式
int number = 1;
switch (number){
    case 1 ->{
    System.out.println("一");
    }
    case 2 ->{
    System.out.println(”二");
    }
    case 3 -> {
    System.out.println("三");
    }
    default -> {
    System.out.println("没有这种选项");
    }
    
 }

3.循环结构

作用:控制一段代码重复的执行多次

什么是循环?

重复的做某件事情

具有明确的开始和停止标记

循环的分类

for

while

do...while

for循环

格式:

for ( 初始化语句;条件判断语句;条件控制语句){

循环体语句;

}

例如:

for (int i = 1 ;i<= 10 ; i++ ){
   System.out.println( "Helloworld" );
}

执行流程:

  1. 执行初始化语句

  1. 执行条件判断语句,看其结果是true还是false

  1. 如果是false,则循环结束

  1. 如果是true,执行循环体语句

  1. 执行条件控制语句

  1. 回到②继续执行条件判断语句

如下图表示:

while循环

格式:

初始化语句;

while(条件判断语句){

循环体语句;

条件控制语句;

}

执行流程:

  1. 初始化语句只执行一次

  1. 判断语句为true,循环继续

  1. 判断语句为false,循环结束

用代码演示如下:

int i = 1;// 初始化语句
while(i <= 100){// 条件判断语句
System.out.println(i);// 循环体语句
i++;// 条件控制语句
}
for和while的对比

相同点:运行规则都是一样的

for和 while的区别:

  • for循环中,控制循环的变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了。

  • while循环中,控制循环的变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用。

for和while 的用法区别:

for循环中:知道循环次数或者循环的范围

while循环:不知道循环的次数和范围,只知道循环的结束条件。

do...while循环

格式:

初始化语句;

do{

循环体语句;

条件控制语句;

}while(条件判断语句);

执行流程:

特点:先执行,后判断。

无线循环

三种格式:

for( ; ; ){

System.out.println("学习");

}

while(true) {

System.out.println("学习");

}

do {

System.out.println("学习");

} while(true);

注意事项

无限循环的下面不能再写其他代码了,因为循环永远停不下来,那么下面的代码永远执行不到

continue和break关键字

1. continue:跳过本次循环,继续执行下次循环。

2. break:结束整个循环。

比如下面的代码:

public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println(i);
        }
    }

运行结果:

使用continue关键字后

public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            if(i==3){
             continue;
        }
            System.out.println(i);
        }
    }

运行结果:

很显然发现当执行到i==3时执行continue跳过了本次循环

使用break关键字

// 使用break关键字
public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            if(i==3){
        break;
        }
            System.out.println(i);
        }
    }

运行结果:

显然发现当执行到break时结束了循环

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值