【Java全栈学习笔记-U1-day04】switch+while+作用域

本文详细介绍了Java中的switch语句,包括其作用、语法和与多重if的比较。接着讲解了while循环的结构、不同类型的循环以及如何使用while循环处理用户主导的不确定次数的循环。此外,还探讨了变量的作用域,区分了局部变量和全局变量的概念。最后,文章提供了多个示例和作业,帮助读者巩固这些概念。

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

Java学习笔记

声明:Java全栈学习笔记是为整理当初学习Java时的学习笔记,以复习为目的而制作,仅提供大家交流学习,请勿用作他用

day04 switch+while+作用域

一、switch语句

1.1作用

解决等值判断问题

1.2 语法

switch(变量){
    case1:
        执行的代码块
        break;
    case2:
        执行的代码块
        break;
        ……
   default:
        执行的代码块
        break;
}

注意:
a.Default块可有可无
b.Break关键用于退出switch
c.变量一般类型:整型、字符、字符串(JDK1.6版本后支持)
d.Case语句可以并列列举:多重case

switch(temp){
    case 1:
    case 2:
        System.out.println("旅游");
        break;
}

示例:

//理解switch语句
    public static void main(String[] args) {
        //输入名词显示对应的奖
        Scanner input = new Scanner(System.in);
        System.out.println("请输入名次:");
        int temp = input.nextInt();	//1、2、3...

        //多重if
        /*if (temp == 1){
            System.out.println("旅游");
        }else if (temp == 2){
            System.out.println("电脑");
        }else if (temp == 3){
            System.out.println("硬盘");
        }else {
            System.out.println("无");
        }*/

        //switch语句
        switch (temp){
            case 1:
                System.out.println("旅游");
                break;
            case 2:
                System.out.println("电脑");
                break;
            case 3:
                System.out.println("硬盘");
                break;
            default:
                System.out.println("无");
                break;
        }
    }

1.3 switch语句和多重if语句比较

switch多用于解决等值的问题
多重if语句多用于解决区间问题

二、while语句(循环结构)

2.1 作用

解决重复做的事情

2.2 循环语句

while语句;do…while语句;for循环

2.3 while循环语句(重点)

特点:先判断、再执行
语法:

while(循环条件){
	循环体
}

2.4 固定次数的while循环

//固定次数的while循环
public static void main(String[] args) {
    int i = 1;  //变量 开始值
    while(i <= 5){  //变量的条件
        System.out.println("隔壁的老林:" + i);
        //累计次数
        i++;    //变量的自增或者自减
    }
    //注意:i++不能省略,如果省略会发生死循环
}

示例一:

public static void main(String[] args) {
      int i = 1;  //变量  记录次数
      while(i <= 5){
          //System.out.println(i);
          System.out.println("第" + i + "次输出");
          //累计次数
          i++;  //等价于i = i + 1
      }
}

示例:求1-100的和:

public static void main(String[] args) {
    //示例:使用while循环实现 1+2+3+4+5....100的和
    //分析
    /*
    int sum = 0;   //累加器
    sum = sum + 1;  //1
    sum = sum + 2;  //3
    sum = sum + 3;  //6
    sum = sum + 4;   //10
    ....
    sum = sum + 100;  //?*/

    int sum = 0;    //总和
    int  i = 1; //控制循环次数
    while(i <= 100){    //变量的条件
        //System.out.println(i);
        sum = sum + i;  //循环累加
        i++;    //变量的自增货自减
    }
    System.out.println("1-100的和是:" + sum);
}

示例三:求1-100的奇数和

public static void main(String[] args) {
    //示例:使用while循环实现 1+2+3+4+5....100的和
    int sum = 0;    //总和
    int  i = 1; //控制循环次数
    while(i <= 100){    //变量的条件
        if (i % 2 != 0) {
            //System.out.println(i);
            sum = sum + i;  //循环累加
        }
        i++;    //变量的自增货自减
    }
    System.out.println("1-100的奇数和是:" + sum);
}

2.5 使用while循环由用户主导的不确定次数的循环

public static void main(String[] args) {
    //使用while循环实现由用户主导的不确定次数的循环
    Scanner input = new Scanner(System.in);
    System.out.println("今天能跑吗?");
    String flag = input.next(); //y|n
    while(flag.equals("y")){
        System.out.println("跑了一圈......");
        System.out.println("你还能继续跑吗?");
        flag = input.next();    //y|n
    }
}

三、变量的作用域(作用域可以理解作用的范围)

**局部变量:**在大括号内定义的变量称为局部变量,只能在大括号范围内使用
**全局变量:**在大括号外定义的变量称为全局变量
**注意:**局部变量和全局变量相对于大括号来看

作业

作业一

记住循环语句
While,switch

作业二

使用while 循环结构输出:100 95 90 85 ………5。

/**
 * @Author: 开心就好9905
 * @Date: 2023/2/13 11:01
 * @Description:作业二.使用while 循环结构输出:100  95  90  85  ………5。
 */
public static void main(String[] args) {
    int out = 100;  //输出的数字
    /*while(out >= 5){
        System.out.print(out + "  ");
        out = out -5;
    }
    System.out.println();*/
    while(out >= 5){
        if (out % 5 == 0){
            System.out.print(out + "  ");
        }
        out--;
    }
    System.out.println();
}

作业三

使用while循环结构实现:1至50 之间能被7的整除的数值之和并输出

/**
 * @Author: 开心就好9905
 * @Date: 2023/2/13 11:06
 * @Description:作业三.使用while循环结构实现:1至50 之间能被7的整除的数值之和并输出
 */
public class Divided_By_7 {
    public static void main(String[] args) {
        int i = 1;  //控制循环次数
        int sum = 0;    //总和

        while(i <= 50){
            if (i % 7 == 0){
                sum = sum + i;
            }
            i++;
        }
        System.out.println("1-50之间能被7整除的书的和为:" + sum);
    }
}

作业四

统计1-100之间,能被3和5同时整除的数有多少个.
累加器的思想

/**
 * @Author: 开心就好9905
 * @Date: 2023/2/13 11:46
 * @Description:作业四:统计1-100之间,能被3和5同时整除的数有多少个.
 */
public class Count_Divided_by_3_5 {
    public static void main(String[] args) {
        int count = 0;  //计数器
        int i = 1;  //控制循环次数

        while (i <= 100){
            if (i % 3 == 0 && i % 5 ==0) {
                count++;
            }
            i++;
        }
        System.out.println("1-100之间能同时被3和5整除的数有" + count + "个");
    }
}

作业五

使用switch结构实现:为小明制定学习计划,星期一, 星期三, 星期五学习编程,星期二, 星期四, 星期六学习英语,星期日休息。

/**
 * @Author: 开心就好9905
 * @Date: 2023/2/13 14:38
 * @Description:使用switch结构实现:为小明制定学习计划,星期一, 星期三, 星期五学习编程,星期二, 星期四, 星期六学习英语,星期日休息。
 */
public class Study_Plans {
    public static void main(String[] args) {
        int weeekdays;

        Scanner input = new Scanner(System.in);
        System.out.println("请输入今天星期几(星期日用数字7代替):");
        weeekdays = input.nextInt();
        switch (weeekdays){
            case 1:
            case 3:
            case 5:
                System.out.println("学习编程");
                break;
            case 2:
            case 4:
            case 6:
                System.out.println("学习英语");
                break;
            case 7:
                System.out.println("休息日");
                break;
            default:
                System.out.println("输入有误");
                break;
        }
    }
}

*以下选做: 作业六:

模拟超市结算小程序:
请用户循环输入商品的单价,只到用户输入0时结束输入计算总额并统计商品的件数
效果如下:
请输入商品的价格:30
请输入商品的价格:50
请输入商品的价格:80
请输入商品的价格:0
共购买3件商品,实付总金额为:160

/**
 * @Author: 开心就好9905
 * @Date: 2023/2/13 14:48
 * @Description:作业六:模拟超市结算小程序:请用户循环输入商品的单价,只到用户输入0时结束输入计算总额并统计商品的件数
 */
public class Settle_accounts {
    public static void main(String[] args) {
        int price;  //输入的商品价格
        int sum = 0;    //计算总价
        int count = 0;  //计算件数

        Scanner input = new Scanner(System.in);
        System.out.print("请输入商品的价格:");
        price = input.nextInt();
        while (price != 0){
            sum = sum + price;
            count++;
            System.out.print("请输入商品的价格:");
            price = input.nextInt();
        }
        System.out.println("共购买"+ count + "件商品,实付金额为:" + sum);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值