概述
switch语句
语句格式
switch(表达式){
case 1:
语句1;
break;
case 2:
语句2;
break;
....
default:
语句体n+1;
break;
}
执行流程
-
首先计算出表达式的值
-
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
-
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
代码案例1:
/* switch 语句 格式: switch(表达式){ case1: 语句体1; break; case2 语句体2; break; .... defualt: 语句体3; break; } 案例: 输入一个月份确认是哪个季节? 分析: 1、涉及键盘输入所以需要导包 2、创建对象 3、接受对象 1、2、12 为冬季 3、4、5 为春季 6、7、8 为夏季 9、10、11 为秋季 */ //1、导包 import java.util.Scanner; public class five{ public static void main(String[] args){ //创建对象 Scanner sc = new Scanner(System.in); //接受对象 System.out.println("请输入一个月份:"); int mouth = sc.nextInt(); //因涉及选择所以用switch语句 switch(mouth){ case 1: System.out.println("冬季"); break; case 2: System.out.println("冬季"); break; case 3: System.out.println("春季"); break; case 4: System.out.println("春季"); break; case 5: System.out.println("春季"); break; case 6: System.out.println("夏季"); break; case 7: System.out.println("夏季"); break; case 8: System.out.println("夏季"); break; case 9: System.out.println("秋季"); break; case 10: System.out.println("秋季"); break; case 11: System.out.println("秋季"); break; case 12: System.out.println("冬季"); break; default : System.out.println("你输入的有误"); break; } } }
代码案例2:
对上面的代码进行优化
//1、导包 import java.util.Scanner; public class five{ public static void main(String[] args){ //创建对象 Scanner sc = new Scanner(System.in); //接受对象 System.out.println("请输入一个月份:"); int mouth = sc.nextInt(); //因涉及选择所以用switch语句 switch(mouth){ 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; case 12: case 1: case 2: System.out.println("冬季"); break; default : System.out.println("你输入的有误"); break; } } }
for循环
语句格式
for(初始化语句;条件判断语句;条件控制语句){
循环语句体;
}
执行流程
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
代码案例
1、输出数据
需求:在控制台输出1-5和5-1的数据
/*
for循环语句
for(初始化语句;条件判断语句;条件控制语句){
循环语句;
}
需求:在控制台输出1-5和5-1的数据
分析:
用fou循环语句实现1-5和5-1的数据输出
*/
public class five{
public static void main(String[]args){
for(int i =1;i <= 5; i++){
System.out.println(i);
}
for(int j =5;j >= 1; j--){
System.out.println(j);
}
}
}
2、输出数据求和
需求:求1-5之间的数据和,并把求和结果在控制台输出
/*
for循环语句
for(初始化语句;条件判断语句;条件控制语句){
循环语句;
}
需求:求1-5之间的数据和,并把求和结果在控制台输出
分析:
求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0
*/
public class five{
public static void main(String[]args){
//求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0
int num = 0;
for(int i = 1;i <= 5; i++){
num +=i;
}
System.out.println("数据的和为:" + num);
}
}
3、求偶数和
需求:求1-100之间的偶数和,并把求和结果在控制台输出
/*
for循环语句
for(初始化语句;条件判断语句;条件控制语句){
循环语句;
}
需求:求1-100之间的偶数和,并把求和结果在控制台输出
分析:
//求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0
*/
public class five{
public static void main(String[]args){
int num = 0;
for(int i = 1; i <=100; i++){
//因为要求1-100之间的偶数和
if(i%2==0);{
num += i;
}
}
System.out.println("数据的偶数和为:" + num);
}
}
4、水仙花
需求:在控制台输出所有的“水仙花数”
解释:什么是水仙花数?
水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数
例如`153 3 * 3 * 3 + 5 * 5 * 5 + 1 * 1 * 1 = 153‘
-
获取所有的三位数,准备进行筛选,最小的三位数为100,最大的三位数为999,使用for循环获取
-
获取每一个三位数的个位,十位,百位,做if语句判断是否是水仙花数
/* for循环语句 for(初始化语句;条件判断语句;条件控制语句){ 循环语句; } 需求:在控制台输出所有的“水仙花数” 分析: 1. 获取所有的三位数,准备进行筛选,最小的三位数为100,最大的三位数为999,使用for循环获取 2. 获取每一个三位数的个位,十位,百位,做if语句判断是否是水仙花数 */ public class five{ public static void main(String[]args){ //输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束 for(int num = 100; num <=999; num++){ //获取每一个三位数的个位,十位,百位,做if语句判断是否是水仙花数 int ge=num%10; int shi=num/10%10; int bai=num/10/10%10; //判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等 if(ge*ge*ge + shi*shi*shi + bai*bai*bai == num){ //输出满足条件的数字就是水仙花数 System.out.println(num); } } } }
while循环
语句格式
初始化语句;
while (条件判断语句){
循环语句;
条件控制语句;
}
执行流程
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
代码案例
需求:在控制台输出5次"HelloWorld"
//需求:在控制台输出5次"HelloWorld"
public class Demo02 {
public static void main(String[] args) {
//for循环实现
for (int i = 1; i <= 5; i++){
System.out.println("HelloWorld");
}
System.out.println("-------");
//while循环
int j = 1;
while(j <= 5){
System.out.println("HelloWorld");
j++;
}
}
}
while循环练习:纸和珠穆朗玛峰
需求:
世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。
请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
public class Demo03 {
public static void main(String[] args) {
//因为求和要定义一个数值,初始化为0
int count = 0;
//定义珠峰的高度
int zf = 8844430;
//定义纸的厚度
double paper = 0.1;
//因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环
//折叠的过程中当纸张厚度大于珠峰就停止了,因此继续执行的要求是纸张厚度小于珠峰高度
while (paper <= zf){
paper*=2;
System.out.println(paper);
count++;
}
System.out.println("折叠的次数为:" + count + "次");
}
}
while循环练习:皇帝赏农民
需求:皇帝赏农民
古代有一个农民,救了皇帝的儿子。皇帝大喜,奖赏农民!黄金万两、良田千亩。
农民说:第一天给我1块钱,第二天给我2块钱,第三天给我4块钱~~~~ 连续给我一个月!
/*
* 需求:皇帝赏农民
古代有一个农民,救了皇帝的儿子。皇帝大喜,奖赏农民!黄金万两、良田千亩。
农民说:第一天给我1块钱,第二天给我2块钱,第三天给我4块钱~~~~ 连续给我一个月!
* */
public class Demo04 {
public static void main(String[] args) {
//因为要求钱数的总和所以要定义一个数值,初始为0
int monery = 0;
//定义一个钱的变量,初始为1
int i = 1;
//第一天给我1块钱,第二天给我2块钱,第三天给我4块钱;涉及循环,j*=2
for (int j = 1; j <=30; j++) {
i *= 2;
monery += i;
System.out.println("每天给的钱为:" + j);
}
System.out.println("连续给一个月的钱为:" + monery);
}
}
do-while循环
定义格式
初始化语句
do{
循环语句;
条件控制语句;
}while(条件判断语句);
执行流程
- ①执行初始化语句
- ②执行循环体语句
- ③执行条件控制语句
- ④执行条件判断语句,如果为true
- ②->③->④ 直到条件为false结束
执行特点
- do-while循环无论条件是否满足,都至少执行一遍循环体
代码案例
public class Demo05 {
public static void main(String[] args) {
int i = 1;
do {
System.out.println("HelloWorld");
i++;
}while(i <= 5);
}
}
do-while循环和for、while循环的区别
1、do-while循环需要执行一遍循环体
2、for、while循环先进行判断,再执行循环
for循环和while循环的区别
当循环的次数明确的时候,推荐使用for循环
代码案例
需求:打印1~100之间的所有的8的倍数的数字
//需求:打印1~100之间的所有的8的倍数的数字
public class Demo06 {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++){
//因为涉及打印1~100之间的所有的8的倍数的数字需要判定是否属于;需要加if语句
if (i%8==0){
System.out.println(i);
}
}
}
}
当循环的次数不明确的时候,推荐使用while循环
需求:通过键盘不断的接收数字并打印。直到输入的数字是886则停止
//需求:通过键盘不断的接收数字并打印。直到输入的数字是886则停止
public class Demo07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true){
System.out.println("请输入你想输入的数值:");
int num = sc.nextInt();
if (num == 886){
System.out.println("你输入的值为:" + num);
break;
}
System.out.println("你输入的值为:" + num);
}
}
}
循环嵌套
跳转控制语句
-
break关键字
- 作用:可以结束循环和switch语句
- 使用场景:可以用在循环中,也可以用在switch语句中
-
continue关键字
- 作用:结束本次循环,继续下一次循环
- 使用场景:只能用在循环中
案例代码
需求:
1.我想在控制台输出2次我爱学习Java break
2.我想在控制台输出7次我爱学习Java continue
3.我想在控制台输出13次我爱学习Java/* * 需求: 1.我想在控制台输出2次我爱学习Java break 2.我想在控制台输出7次我爱学习Java continue 3.我想在控制台输出13次我爱学习Java * */ public class Demo08 { public static void main(String[] args) { for (int i = 1; i <= 10; i++){ if (i%3 != 0){ System.out.println("我爱学习"); //break; //continue; } } System.out.println("我爱学习"); } }
循环嵌套
执行特点:外循环执行一次,内循环执行一圈
示例代码
for(int hour=0; hour<24; hour++) { // hour = 1
for(int minute=0; minute<60; minute++) { // minute = 60
System.out.println(hour + "时" + minute + "分");
// 0时0分
// 0时1分
// 0时2分
// 0时59分
}
System.out.println("--------");
}
循环嵌套练习:输出指定*型
/*
* 需求1:控制台输出:
****
****
****
****
输出4行4列的*
外循环控制的是行数,内循环控制的是列数
需求2:控制台输出:
*
**
***
****
作业题:输出99乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
...
* */
public class Demo09 {
public static void main(String[] args) {
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= 4; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println("--------------------");
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
循环嵌套练习:输出99乘法表
/*
* 作业题:输出99乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16 内循环为列,外循环为行
...
* */
public class Demo10 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++){
for (int j = 1; j <= i; j++){
System.out.print(j + "*" + i + "=" + (i*j) + ",");
}
System.out.println();
}
}
}
随机数
Random类使用步骤
- 导包:import java.util.Random;
- 创建对象:Random r = new Random();
- 生成随机数:r.nextInt(数字); 0 ~ 数字-1
代码案例
import java.util.Random;
public class Demo11 {
public static void main(String[] args) {
Random r = new Random();
int i = r.nextInt(10);
System.out.println(i);
}
}
猜数字游戏
// 需求:要完成猜数字的游戏,需要有一个要猜的数字,使用随机数生成该数字,范围1到100
import java.util.Random;
import java.util.Scanner;
public class Demo11 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//请输入一个任意数
// System.out.println("请输入一个任意数:");
//int j = sc.nextInt(); 这个要放在循环之内,因为每次都要输入数字,参与循环
Random r = new Random();
//随机生成一个范围数字
int i = r.nextInt(100)+1;
while(true){
System.out.println("请输入一个任意数:");
//请输入一个任意数
int j = sc.nextInt();
//比较输入的数字和系统产生的数据,需要使用分支语句。这里使用if..else..if..格式,根据不同情况进行猜测结果显示
if (j<i){
System.out.println("你猜的数小了");
}else if (j>i){
System.out.println("你猜的数大了");
} else {
System.out.println("你猜对了");
break;
}
}
}
}
补充的循环的两个思想
循环标号
public class Demo01 {
public static void main(String[] args) {
//对循环进行标号
w:
for (int i = 1; i < 3; i++) {
n:
for (int j = 1; j < 5; j++) {
System.out.println(j);
if (j == 3) {
//停止外循环就会输出一次
break w;
}
}
}
循环分析思想
public class Demo01 {
public static void main(String[] args) {
// 需求:判断是有有3这个数字,有这个数字则输出有3这个数字;没有则输出没有3这个数字
//定义一个布尔类型变量
boolean flage = false;
for (int i = 1; i <= 5;i++){
if (i==3){
flage = true; //r如果有3这个数字,将从新定义为ture
}
}//整个循环结束
//在进行判断输出的是否有3
if (flage == true){
System.out.println("有3这个数字");
}else{
System.out.println("没有3这个数字");
}
System.out.println("----------------");
}
}
最后
以上就是整齐鱼为你收集整理的switch语句及三种循环语句的全部内容,希望文章能够帮你解决switch语句及三种循环语句所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复