荐 Java学习之路-day-03 switch&循环语句
Java switch&循环语句
每日一句
业精于勤,荒于嬉;行成于思,毁于随。
评价:学业由于勤奋而精通,但它却荒废在嬉笑玩耍中,事情由于反复思考而成功,但它却能毁灭于随大流。
1 switch语句
1.1 switch语句结构
switch (表达式) {
case 1:
语句体1;
break;
case 2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
格式说明:
表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String。
case:后面跟的是要和表达式进行比较的值。
break:表示中断,结束的意思,用来结束switch语句。
default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
执行流程:
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结
束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
举例:
需求:一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出
import java.util.Scanner;
public class SwitchDemo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入月份(1-12): ");
int month = sc.nextInt();
// case 穿透
switch (month){
case 1:
case 2:
case 12:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("输入月份有误!");
break;
}
}
}
注意:如果switch中得case,没有对应break的话,则会出现case穿透的现象。
2 for循环
2.1 for循环结构
循环:循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形 成死循环。
for循环格式:
for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
格式解释:
初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
执行流程:
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
举例:
求偶数和
需求:求1-100之间的偶数和,并把求和结果在控制台输出
public class ForDemo03 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum += i;
}
}
System.out.println("1-100之间的偶数和: " + sum);
}
}
水仙花数:一个三位数,个位,十位,百位的数字立方和等于原数。在控制台输出所有水仙花数
public class ForDemo04 {
public static void main(String[] args) {
// 遍历所有三位数
for (int i = 100; i < 1000; i++){
int a = i / 100; // 百位
int b = (i / 10) % 10; // 十位
int c = i % 10; // 个位
if (a*a*a + b*b*b + c*c*c == i)
{
System.out.println(i);
}
}
}
}
3 while循环
3.1 while结构
while循环完整格式:
初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}
while循环执行流程:
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
举例:
需求:珠穆朗玛峰8844.43米=8844430毫米,假如我有一张足够大的纸,它的厚度是0.1毫米,请问折叠多少次,可以折成珠穆朗玛峰高度
public class WhileDemo01 {
public static void main(String[] args) {
int count = 0; // 定义一个计数器count
double paper = 0.1; // 纸张厚度
int zf = 8844430; // 珠穆朗玛峰高度
while (paper <= zf){
paper *= 2;
count++;
}
// 打印结果
System.out.println("需要折叠" + count + "次.");
}
}
4 循环细节
4.1 do…while循环结构
完整格式:
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
① 执行初始化语句
② 执行循环体语句
③ 执行条件控制语句
④ 执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
⑤ 回到②继续
举例:
使用do while循环实现在控制台输出5次HelloWorld
public class DoWhileDemo {
public static void main(String[] args) {
// 使用do while循环实现在控制台输出5次HelloWorld
int i = 1;
do {
System.out.println("HelloWorld");
i++;
} while (i <= 5);
}
}
4.2 三种循环的区别
三种循环的区别
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for循环和while的区别
条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
死循环(无限循环)的三种格式
- for(; ; ){}
- while(true){}
- do {} while(true);
4.3 跳转控制语句
continue 用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行
break 用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环
举例:
public class ControlDemo {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++){
if (i % 2 == 0){
// continue;
break;
}
System.out.println(i);
}
}
}
4.4 循环嵌套
循环嵌套概述:在循环中,继续定义循环。任何语句对外都可以看成是一句话,一句代码。分支语句中包含分支语句称为分支嵌套,循环语句中包含循环语句称为循环嵌套。
举例:
需求:在控制台输出一天的小时和分钟
public class ForForDemo {
public static void main(String[] args) {
for (int hour = 0; hour < 24; hour++){
for (int minute = 0; minute < 60; minute++){
System.out.println(hour + "时" + minute + "分");
}
}
}
}
5 Random
5.1 Random产生随机数
概述:
Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能。
使用步骤:
(1) 导入包
import java.util.Random;
(2) 创建对象
Random r = new Random();
(3) 产生随机数
int num = r.nextInt(10);
解释: 10代表的是一个范围,如果括号写10,产生的随机数就是0-9,括号写20,参数的随机数则是0-19
举例:
import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
//创建对象
Random r = new Random();
//用循环获取10个随机数
for(int i=0; i<10; i++) {
//获取随机数
int number = r.nextInt(10);
System.out.println("number:" + number);
}
//需求:获取一个1-100之间的随机数
int x = r.nextInt(100) + 1;
System.out.println(x);
}
}
5.2 Random练习-猜数字
需求:
程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?
当猜错的时候根据不同情况给出相应的提示
A. 如果猜的数字比真实数字大,提示你猜的数据大了
B. 如果猜的数字比真实数字小,提示你猜的数据小了
C. 如果猜的数字与真实数字相等,提示恭喜你猜中了
import java.util.Scanner;
import java.util.Random;
public class GuessNumber {
public static void main(String[] args) {
Random r = new Random();
// // 生成一个要猜的数字,使用随机数
int number = r.nextInt(100) + 1;
while (true) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入你要猜的数字: ");
int guessNumber = sc.nextInt();
if (guessNumber > number) {
System.out.println("你猜的数字" + guessNumber + "大了");
} else if (guessNumber < number) {
System.out.println("你猜的数字" + guessNumber + "小了");
} else {
System.out.println("恭喜你猜中了!");
break; // 猜中了就结束循环
}
}
}
}
本文地址:https://blog.csdn.net/weixin_43441789/article/details/107360790