Java基础-判断语句和循环语句

本文介绍了Java中的if-else基本判断语句,包括单层if-else、多重if结构,以及循环语句如while、do-while、for和嵌套循环的使用,同时讲解了break和continue语句以及死循环的概念。

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

一.判断语句

  1. if-else判断

格式:

if(判断条件){
    //条件成立执行语句
}else{
    //条件不成立执行语句
}

条件是一个表达式,此表达式的值可以为真或假.如果条件的值为真,则执行if下的语句块;如果条件的值为假,则执行else下的语句块.

练习示例:

public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("输入第一个值:");
        int a = scanner.nextInt();
        System.out.println("输入第二个值:");
        int b = scanner.nextInt();
​
        //判断a和b哪个数值大
        //如果a大于b,则输出a的值;如果a不大于b,则输出b的值
        if(a>b){
            System.out.println(a);
        }else{
            System.out.println(b);
        }
​
  1. 多重if结构

    格式:

    if(条件1){
        语句块
    }else if(条件2){
        语句块
    }else if(条件3){
        语句块
    }...
    else{
        语句块
    }

    在进行条件判断时,如果条件的值为真,则执行某些操作,否则,进一步进行条件判断,执行其他操作;

    多重if结构实际上是if-else结构的两一种形式;if-else-if,这种称为阶梯式,当有多个分支选择时,可采用多重if结构.

    练习示例:

    ​ 问题:根据学生的考试分数分别输出优(90~100分),良(80~90分),中(60~80分),差(小于60分)四个等级,需要逐级判断学生考试分数在哪个分数阶段,并输出相应的等级.

public static void main(String[] args) {
​
        Scanner scanner=new Scanner(System.in);
        System.out.println("输入学生成绩:");
        int score = scanner.nextInt();
        if(score<=100 && score>90){
            System.out.println("该学生分数为:"+score+"优秀!");
        } else if (score<=90 && score>80) {
            System.out.println("该学生分数为:"+score+"良好!");
        } else if (score<=80 && score>=60) {
            System.out.println("该学生分数为:"+score+"中等!");
        } else if (score<60) {
            System.out.println("该学生分数为:"+score+"差!");
        }else{
            System.out.println("成绩输入有误");
        }
​
    }
  1. 嵌套if结构

    格式:

    if(前提条件){
        if(后续条件1){
            语句块1
        }else{
            语句块2
        }
    }else{
        语句块3
    }

除了使用简单if和多重if之外,还可以将整个if块插入到另一个if块中,这种结构称为嵌套if.嵌套if主要用于只有当前条件满足时,才判断后续条件是否满足的情况.

练习示例:

​ 问题:一个活动计划的安排如果今天是工作日,则去上班,如果今天是周末,则外出游玩,如果周末天气晴朗,则去室外游乐场玩,否则去室内游乐场玩.

示例一:
        /**
 * 问题:一个活动计划的安排如果今天是工作日,则去上班,如果今天是周末,则外出游玩,如果周末天气晴朗,则去室外游乐场玩,否则去室内游乐场玩.
 * //思路:
 * 1.先判断今天是工作日还是周末;
 * 2.如果是周末,在判断一下天气是否晴朗
 *      如果晴朗,则去室外玩;
 *      如果不晴朗,则去室内玩;
 */
        Scanner scanner=new Scanner(System.in);
        System.out.println("输入今天周几:");
        String next = scanner.next();
        //进行判断是工作日还是周末
        if(next.equals("周一")){
            System.out.println("去上班");
        } else if (next.equals("周二")) {
            System.out.println("去上班");
        }else if (next.equals("周三")) {
            System.out.println("去上班");
        }else if (next.equals("周四")) {
            System.out.println("去上班");
        }else if (next.equals("周五")) {
            System.out.println("去上班");
        }else if (next.equals("周末")) {
            //输入今天的天气
            System.out.println("输入今天的天气:");
            String next1 = scanner.next();
            if(next1.equals("晴朗")){
                System.out.println("去室外游乐场玩^^~");
            }else{
                System.out.println("去室内游乐场玩^^~");
            }
        }else {
            System.out.println("输入有误!!");
        }
​
示例二:
        /**
         * 问题:要求用户输入两个数值,通过嵌套if结构判断两个数值的大小,并输出相应信息.
         * 思路:
         *  1.先创建输入对象Scanner,能键盘录入两个值
         *  2.使用if判断语句判断两个值是否相等
         *  3.如果不相等,则再使用if进行判断两个值哪个大,输出大的值
         *  4.如果相等则输出提示语句
         */
​
        Scanner scanner=new Scanner(System.in);
        System.out.println("输入第一个值:");
        int a = scanner.nextInt();
        System.out.println("输入第二个值:");
        int b = scanner.nextInt();
        //先进行判断a和b是否相等
        if(a!=b){
            //判断a是否大于b
            if(a>b){
                System.out.println("第一个值比较大:"+a);
            }else {
                System.out.println("第二个值比较大:"+b);
            }
        }else {
            System.out.println("两个值相等:"+a+"="+b);
        }
    }
​

二.循环语句

什么是循环结构?

​ 循环结构是计算机程序设计中的一种常见的控制流程结构,用于重复执行某段代码块,直到满意退出条件为止.循环由循环条件和循环体组成.

​ 循环条件是一个逻辑表达式,在每次循环开始时判断其是否满足退出条件,如果满足则跳出循环,否则继续执行循环体,循环体是一段需要重复执行的代码块,通常包括多条语句.

​ 循环结构可以通过计算器,标志变量,布尔表达式等方式来实现不同的循环控制方式.在编程中,使用循环结构可以简化代码逻辑,提高代码复用性和可读性,同时也可以实现很多复杂的算法和数据处理任务.

1.while循环

用于执行不定次数的循环,条件表达式在循环开始时进行判断,如果为true则执行循环体,否则跳过循环.

格式:

初始表达式1
while(判断条件2){
    //表达式3
}
执行顺序:123->23->23->...

练习示例:

public static void main(String[] args) {
        /**
         * 问题:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米,请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
         * 思路:
         *      1.先把已知的变量定义出来:珠峰的高度,纸的厚度,折叠次数从零开始;
         *      2.使用while循环条件是纸的厚度小于等于珠峰的高度
         *      3.纸张每次折叠是上次厚度的两倍
         *      4.每折叠一次count就自增
         *      5.输出需要折叠的次数
         */
​
        double zhi=0.1;
        int feng=8844430;
        int count=0;
        while (zhi<=feng){
            zhi*=2;
            count++;
        }
        System.out.println(count);
    }
2.do..while循环

与while循环类似,不同之处在于它会先执行一次循环体再进行条件判断是否满足,至少会执行一次循环体.

格式:

初始表达式1
do{
    循环体2
}while(条件表达式3);
//执行顺序:12->32->32->32->...

练习示例:

public static void main(String[] args) {
        /**
         * 在控制台输出10个数
         */
        int count=1;
        do{
            System.out.println(count);
            count++;
        }while (count<=10);
    }

3.for循环

用于循环执行已知次数的代码块,通常使用计数器来控制循环次数.

格式:

for(初始表达式1;条件表达式2;步进表达式4){
    //循环体3
}
执行顺序:1234->234->234->234->...

说明:

  • 初始化语句:用于表示循环开启式的起始状态,简单说就是循环开始的时候什么样.

  • 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去.

  • 循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情.

  • 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去.

练习示例:

package com.statement.loopStatement;
public class TestLoopStatement {
​
    /**
     * 问题:求1~100之间的数据和,并把求和的结果输出在控制台
     * 思路:
     *      1.先定义一个变量接收总和
     *      2.写一个小于等于100的for循环
     *      2.把循环取出来的数值进行相加
     *      3.在控制台输出
     *
     */
    public static void main(String[] args) {
        //先定义一个变量接收总和
        int sum=0;
        //开始循环
        for (int i = 0; i <= 100; i++) {
            //把循环的每个数值进行相加
            sum+=i;
        }
        //在控制台输出总和
        System.out.println(sum);
    }
}
​

4.增强for循环

用于遍历集合或数组中的元素,可以省略初始化,判断和更新三部分,语法简洁.

格式:

for(数据类型 变量名:集合/数组){
    循环体代码
}

其中数据类型标识数组或集合中元素的类型,变量名表示当前遍历到的元素的变量名,数组名或集合名表示要遍历的数组或集合对象.在循环体内部,可以通过变量名来访问当前遍历到的元素,执行相应的操作.

练习示例:

public static void main(String[] args) {
        /**
         * 计算数组中所有元素的和
         */
        int[] arr={1,6,3,8,4,9};
        int sum=0;
        for (int i : arr) {
            sum+=i;
        }
        System.out.println(sum);
    }

5.break和continue语句

break用于跳出循环,continue用于跳过本次循环,这两个语句通常与循环结构配合使用.

6.嵌套循环

将一个循环结构放在另一个循环结构内部,可以实现多层循环嵌套,通常应该尽量避免使用过多层嵌套循环,可以提高程序效率.

格式:

for(初始化表达式1; 循环条件2; 步进表达式7) {
    for(初始化表达式3; 循环条件4; 步进表达式6) {
        执行语句5;
    }
}

练习示例:

public static void main(String[] args) {
        /**
         * 问题:在控制台打印九九乘法表
         * 思路:
         *  1.先写一个循环控制最外层,从1开始小于等于9
         *  2.在控制循环的内层再写一个循环,从1开始最大小于等于i
         *  3.进行输出i*j的值 不进行换行
         *  4.当外层循环一圈之后再进行换行
         */
​
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <=i ; j++) {
                System.out.print(j+"*"+i+"="+i*j+" ");
            }
            System.out.println();
        }
​
    }
7.死循环

死循环:也就是循环中的条件永远为true,死循环的是用不结束的循环.

三种格式:

第一种:
for(;;){}
第二种:
while(true){}
第三种:
do{}while(true);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值