Java学习笔记
声明:Java全栈学习笔记是为整理当初学习Java时的学习笔记,以复习为目的而制作,仅提供大家交流学习,请勿用作他用
文章目录
day04 switch+while+作用域
一、switch语句
1.1作用
解决等值判断问题
1.2 语法
switch(变量){
case 值1:
执行的代码块
break;
case 值2:
执行的代码块
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);
}
}