Java流程控制语句——学习笔记(3)
1、顺序结构
2、分支结构
(1)if语句
package com.laogao.practice;public class ControlPractice {public static void main(String[] args) {System.out.println("控制语句练习");
// 1、分支结构
// 格式1:if(条件){……}int apples=18;if (apples>20){//括号内只有一行代码时,可以去掉大括号System.out.println("苹果数量大于20");}
// 格式2:if(条件){……}else{……}int age=10;if(age>=18){System.out.println("成年");}else{System.out.println("未成年");}
// 格式3:if(条件1){……}else if(条件2){……}else if(条件3){……}else{……}int score=188;if(score<=100&&score>=90){System.out.println("优秀");}else if(score<90&&score>=80){System.out.println("良好");}else if(score<80&&score>=60){System.out.println("及格");}else if(score<60){System.out.println("不及格");}else{System.out.println("有误");}}
}
(2)switch语句,结构清晰,格式良好
package com.laogao.practice;import java.util.Scanner;public class ControlPractice {public static void main(String[] args) {System.out.println("控制语句练习");
// 2、switch分支结构Scanner scanner=new Scanner(System.in);System.out.println("你想知道什么食材的做法");String food=scanner.next();switch (food){case "兔子":System.out.println("红烧兔头");break;case "鱼":System.out.println("松鼠桂鱼");break;case "牛":System.out.println("酱牛肉");break;default:System.out.println("没有");}}
}
注意:case的值不能是变量,需要是明确的字面量,字面量值不能重复;break不要忘记,丢了会穿透;不支持double、float、long,因为底层运算中不是很精确。
switch的穿透性:也就是不写case,可以解决代码冗余的问题
使用场景:多个分支中功能代码一样时候
package com.laogao.practice;public class ControlPractice {public static void main(String[] args) {System.out.println("控制语句练习");
// switch穿透性String classroom="1班";switch (classroom){case "1班":System.out.println("35人");break;case "2班":System.out.println("35人");break;case "3班":System.out.println("35人");break;case "4班":System.out.println("40人");break;case "5班":System.out.println("40人");break;case "6班":System.out.println("40人");break;case "7班":System.out.println("30人");break;case "8班":System.out.println("30人");break;}}
}
上述代码冗余,修改代码如下:
package com.laogao.practice;public class ControlPractice {public static void main(String[] args) {System.out.println("控制语句练习");
// switch穿透性String classroom="1班";switch (classroom){case "1班":case "2班":case "3班":System.out.println("35人");break;case "4班":case "5班":case "6班":System.out.println("40人");break;case "7班":case "8班":System.out.println("30人");break;}}
}
总结:if功能比switch强大,if适合做区间匹配;switch适合做:值匹配的分支选择。
3、循环结构(代码反复执行多次)
(1)for
package com.laogao.practice;public class JavaPractice {public static void main(String[] args) {
//for(初始化语句;循环语句;迭代语句){……}循环格式for (int i=0;i<5;i++){System.out.println("第"+(i+1)+"次循环");}}
}
案例1:前n项和,(for循环快捷键fori)
package com.laogao.practice;public class JavaPractice {public static void main(String[] args) {
// 案例1:前n项和int n=6;int sum1=0;for (int i=0;i<=n;i++){sum1+=i;}System.out.println(sum1);
// 案例2:奇数和int sum2=0;int sum3=0;for (int i = 0; i <= n; i++) {if (i%2==1){sum2+=i;}}
// 求奇数和法2,修改初始语句和迭代语句for (int i = 1; i <= n; i+=2) {sum3+=i;}System.out.println(sum2);System.out.println(sum3);}
}
案例2:水仙花数(三位数,每一位上的数的立方和等于原数)
package com.laogao.practice;public class JavaPractice {public static void main(String[] args) {
// 案例2:水仙花数int ge,shi,bai;for (int i = 100; i <= 999; i++) {ge=i%10;shi=i/10%10;bai=i/100;if((ge*ge*ge+shi*shi*shi+bai*bai*bai)==i){System.out.print(i+"\t");}}}
}
(2)while
package com.laogao.practice;public class JavaPractice {public static void main(String[] args) {
// while循环int i=0;while (i<3){System.out.println("hhh");i++;}}
}
while和for什么时候用:
知道循环几次用for,不知道建议用while
案例1:用纸折出珠穆拉玛峰高度,不确定循环几次
package com.laogao.practice;public class JavaPractice {public static void main(String[] args) {
// 案例1:珠穆朗玛峰double peakHeight=8848860;//山高double paperThickness=0.1;//纸高int count=0;//记录折叠了几次while (paperThickness<peakHeight){paperThickness*=2;count++;}System.out.println(count);System.out.println(paperThickness);}
}
运行结果如下:
(3)do-while,先循环,在判断条件
使用场景:抢票
package com.laogao.practice;public class JavaPractice {public static void main(String[] args) {
// do-while
// 学习目标:学会使用,并理解执行流程int i=0;do {System.out.println("hhh");}while(i<3);}
}
注意:for中控制循环的变量i,只在循环中可以使用;while中,控制循环的变量循环语句后还可以用
(4)其他循环形式
1、死循环
package com.laogao.practice;public class JavaPractice {public static void main(String[] args) {
// 死循环
// 学习目标:学会定义死循环for (; ; ) {System.out.println("hhh");}// 经典死循环写法while (true){//当该循环前边还有死循环时,会报错,因为一直执行不到//解决办法:隐藏上边的死循环System.out.println("hhh");}do {System.out.println("hhh");}while (true);}
}
案例1:密码验证
package com.laogao.practice;import java.util.Scanner;public class JavaPractice {public static void main(String[] args) {
// 案例:密码验证int rightPsw=123;//正确密码Scanner scanner=new Scanner(System.in);//键盘输入while(true){System.out.println("请输入正确密码:");int content=scanner.nextInt();if (content==rightPsw){System.out.println("密码正确");break;//跳出循环}else {System.out.println("密码错误");}}}
}
2、嵌套循环,五行三列
package com.laogao.practice;public class JavaPractice {public static void main(String[] args) {
// 嵌套循环for (int i = 0; i < 5; i++) {for (int j = 0; j < 3; j++) {System.out.print("*");}System.out.println();}}
}
运行结果如下:
(5)跳转关键字:break、continue
break:跳出循环,只能用于循环/switch
continue:结束本次循环(continue后的语句不执行了),进入下一次循环,只能用于循环
(6)随机数:Random
1、导包(不用自己写)
2、创建随机对象
3、调用方法
package com.laogao.practice;import java.util.Random;public class JavaPractice {public static void main(String[] args) {
// 随机数Random random = new Random();for (int i=0;i<10;i++) {int data = random.nextInt(10);//0~9的随机数System.out.println(data);//将选中的代码快速放进循环中,快捷键ctrl+alt+t,再5}}
}
案例1:猜数字
package com.laogao.practice;import com.sun.org.apache.xerces.internal.impl.xs.SchemaNamespaceSupport;import java.util.Random;
import java.util.Scanner;public class JavaPractice {public static void main(String[] args) {
// 随机数Random random = new Random();Scanner scanner=new Scanner(System.in);int data = random.nextInt(100)+1;//1-100的随机数while (true){System.out.println("请输入:");int content=scanner.nextInt();if (data==content){System.out.println("成功了");break;}else if(content>data){System.out.println("大了");}else if(content<data){System.out.println("小了");}}}
}
Java流程控制语句——学习笔记(3)相关推荐
- JAVA学习(四):Java流程控制语句(顺序结构、if条件语句、switch条件语句、循环语句与跳转语句)
Java流程控制语句 本博文将对JAVA中组成各种结构的控制语句进行重点介绍,主要内容是区别于C/C++中的流程控制语句的重点解析. 1.顺序语句 顺序结构中的语句可分为:表达式语句.空语句和复合语句 ...
- java 网络编程学习笔记
java 网络编程学习笔记 C/S模式:客户端和服务器 客户端创建流程 1 1.建立Socket端点 2 3 Socket s = new Socket(绑定地址, 绑定端口); 2.确认源数据方式和 ...
- 01.Java 编程入门学习笔记20210307
Java 编程入门学习笔记-day01 第0章:编程入门 1.计算机的概述 计算机 = 硬件 + 软件 1.1硬件:冯诺依曼体系 CPU: CPU的衡量标准:速度的计量单位是赫兹(Hz),1Hz相当于 ...
- Java日志框架学习笔记
Java日志框架学习笔记 文章目录 0 主流Java日志框架 1 log4j 1.1 理论知识 1.1.1 Loggers日志记录器 1.1.2 Appenders输出端 1.1.3 Layout日志 ...
- java/android 设计模式学习笔记(1)--- 单例模式
前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使 ...
- java.util.List学习笔记
概述 在Java中,List是一种特殊的集合结构,即:List是一种有序的集合.在List接口的实现中,需要提供根据列表下表对元素进行操作的方法,包括:插入,删除,查询和修改等: List一般允许重复 ...
- Java快速入门学习笔记9 | Java语言中的方法
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
- Java快速入门学习笔记8 | Java语言中的数组
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
- Java快速入门学习笔记7 | Java语言中的类与对象
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
最新文章
- python 之GUI设计:Entry组件
- dwz中弹出的窗口页面如何获取前页面(点击按钮的页面)的元素???
- Django模型(三)
- C#中的for,while和do-while循环语句
- java泛化_java 类字面常量,泛化的Class引用
- I/O资源如何映射到内核虚拟空间
- 联想计算机怎样分区,怎么给联想笔记本硬盘分区【图文】
- 3D建模与处理软件简介 刘利刚 中国科技大学
- EasyPR转qt5-vs2013
- 【软考系统架构设计师】2016下系统架构师案例分析历年真题
- 代码:Java实现大数据经典案例WordCount
- 论文查重库包含哪些?
- Android 分析ANR和死锁(3)
- position的4个值和用法
- Internet Download Manager(V6.37版本IDM)免费序列号密钥激活版使用过程中的一些常见问题
- vscode中打开浏览器的快捷键_VSCode设置默认打开的浏览器的方法
- 评联想收购IBM PC
- QKX-ZSZ-4000岩体真三轴动静载荷-应力应变曲线绘制软件
- python获取今日头条搜索信息_python爬虫(十二、爬取今日头条关键词所有文章)
- AI遮天传 DL-反馈神经网络RNN