switch语句及三种循环语句
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){//求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0int 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) {//因为求和要定义一个数值,初始化为0int 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) {//因为要求钱数的总和所以要定义一个数值,初始为0int monery = 0;//定义一个钱的变量,初始为1int i = 1;//第一天给我1块钱,第二天给我2块钱,第三天给我4块钱;涉及循环,j*=2for (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 break2.我想在控制台输出7次我爱学习Java continue3.我想在控制台输出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 = 1for(int minute=0; minute<60; minute++) { // minute = 60System.out.println(hour + "时" + minute + "分");// 0时0分// 0时1分// 0时2分// 0时59分}System.out.println("--------");}
循环嵌套练习:输出指定*型
/*
* 需求1:控制台输出:****************输出4行4列的*外循环控制的是行数,内循环控制的是列数需求2:控制台输出:**********作业题:输出99乘法表1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*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=11*2=2 2*2=41*3=3 2*3=6 3*3=91*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到100import 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}}//整个循环结束//在进行判断输出的是否有3if (flage == true){System.out.println("有3这个数字");}else{System.out.println("没有3这个数字");}System.out.println("----------------");}
}
switch语句及三种循环语句相关推荐
- 简单介绍Lua中三种循环语句的使用
今天小编就为大家分享一篇关于Lua中三种循环语句的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 Lua的循环和C语言的循环的语法其实差不多,所以, ...
- 《C语言及程序设计》实践项目——三种循环语句
返回:贺老师课程教学链接 [项目1:利用循环求和] 求1000以内所有偶数的和 要求:请编出3个程序来,分别用三种循环语句完成,注意体会各种循环语句的执行过程及语法特点. [参考解答] [项目2:求阶 ...
- java循环do while_Java中for、while、do while三种循环语句的区别介绍
这篇文章主要介绍了Java中for.while.do while三种循环语句的区别介绍的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 本文通过实例讲解给大家介绍Java中for.whil ...
- JAVA中几种循环结构的表示_本文通过实例讲解给大家介绍Java中for、while、do while三种循环语句的区别,具体详情如下所示:第一种:for循环 循环结构for语句的格式...
本文通过实例讲解给大家介绍Java中for.while.do while三种循环语句的区别,具体详情如下所示: 第一种:for循环 循环结构for语句的格式: for(初始化表达式;条件表达式;循环后 ...
- c语言三种循环语句,C语言三种循环语句的功能等价性
C语言程序中的.bile,dowhile,for三种循环语句在实现不同形式的循环功能上各具特色及优点,从而使C语言程序的循环功能准确简洁地实现了实际问题中不同形式及过程的循环要求,本文从一般逻辑关系上 ...
- 程序流程图画法复习-三种循环语句(for,while,do while)
程序流程图画法复习 1.程序流程图的作用 程序流程图的作用程序流程图的作用程序流程图的作用 程序流程图是人们对解决问题的方法.思路或算法的一种描述. 流程图的优点: (a)采用简单规范的符号,画法简单 ...
- continue语句可以用在switch语句和3种循环语句中_Java基础复习笔记P20——break和continue...
控制循环语句: break 和 continue break break是java语言当中的关键字,被翻译为"中断" break+";"可以成为一个单独的完整的 ...
- continue语句可以用在switch语句和3种循环语句中_必须知道的C语言知识细节:break、continue语句区别...
break语句.continue语句都是C语言标准规定的跳转类语句,能够实现程序无条件转向另一处执行. break和continue中在循环体中经常出现,因此必须掌握其区别,避免出错. 先复习下两种语 ...
- continue语句可以用在switch语句和3种循环语句中_Java中的循环
循环是Java中应用最为广泛的一个知识点,所以也是很需要掌握的. 其中循环包括:1.循环控制.2.循环嵌套.3.break与continue.4.死循环 一.循环控制 1.for循环 for循环结构: ...
最新文章
- 打造无所不及的智能:徐直军发布华为AI战略及全栈全场景方案
- CE6.0 下获得 SD 卡序列号的方法
- Android学习记录:SQLite数据库、res中raw的文件调用
- 测试core :: demangled_name
- TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常!...
- Hadoop之ReduceTask工作机制
- 采蘑菇的克拉莉丝(树链剖分)
- 注解版poi操作工具
- PHP+MySql获取新添加记录的ID值
- Python源码深度解析—Python提供的C API
- cmd使用SBT构建scala项目
- RocketMQ源码-基于Netty的通信层设计
- 如何采用类比法和类推法估算软件项目工作量
- 计算机制作节日贺卡教案,《制作节日贺卡》教学设计..doc
- CentOS 7.5 安装MySQL教程
- MySQL-notes
- 130 个令你眼前一亮的网站,总有用得着的
- MATLAB | 绘制复指数函数 y = exp(j*w*n)的三维图像
- computed,watch
- 随机延迟微分方程Matlab程序,求大神指点matlab用拟合的方式解延迟微分方程组参数...
热门文章
- 九州集团“刷脸支付红利风口”交流会议将9月9日举行
- 工作日计算器_.NET工作日计算器
- matlab沃利斯圆周率计算公式,物理学家在量子力学中发现圆周率π的计算公式
- LeetCode 1091 二进制矩阵中的最短路径问题[BFS 队列] HERODING的LeetCode之路
- 12x12怎么速算_如果孩子正读小学,学会这4个乘法速算技巧,将大大提高计算速度...
- 详细说说Mac下搭建Appium环境
- 积分专题笔记-与路径无关条件
- SQL语句的约束 总结
- 电脑如何连接windows server服务器
- 什么是通货膨胀(Inflation)