到头来还是逃不过Java - 流程控制
流程控制
没有特殊说明,我的所有这个系列的Java13的笔记都是从廖老师那里摘抄、总结过来的,侵删

引言
兜兜转转到了大四,学过了C,C++,C#,Java,Python,学一门丢一门,到了最后还是要把Java捡起来。虽然Python好写舒服,但是毕竟不能完全面向对象,也没有那么多的应用场景,所以,奉劝看到本文的各位,还是提前学好C#或者Java,话不多说,这个系列,干就完了!
输出
println是print line的缩写,表示输出并换行。因此,如果输出后不想换行,可以用print()- 格式化输出使用
System.out.printf(),通过使用占位符%?,printf()可以把后面的参数格式化成指定格式 - 由于%表示占位符,因此,连续两个
%%表示一个%字符本身。
| 占位符 | 说明 |
|---|---|
| %d | 格式化输出整数 |
| %x | 格式化输出十六进制整数 |
| %f | 格式化输出浮点数 |
| %e | 格式化输出科学计数法表示的浮点数 |
| %s | 格式化字符串 |
输入
- 导入
java.util.Scanner,创建Scanner对象并传入System.in,Scanner会自动转换数据类型,因此不必手动转换
if判断
当
if语句块只有一行语句时,可以省略花括号{},但是尽量不要省略花括号,这样在版本控制系统的时候会出现问题。串联多个
if时正确的方式是按照判断范围从大到小依次判断,或者从小到大判断,不要从中间范围判断。用
if时,还要特别注意边界条件,>和>=是不同的。注意判断浮点数相等用
==判断不靠谱,正确的方法是利用差值小于某一个临界值来判断。判断引用类型相等
- 在Java中,判断
值类型的变量是否相等,可以使用==运算符。但是,判断引用类型的变量是否相等,==表示是否指向同一个对象,却不表示对象的值是否相同。 - 要判断引用类型的变量值的内容是否相等,必须使用
equals()方法- 如果使用
equals()时其中一个变量是null那么会报错NullPointerException - 可以把一个一定不是
null的变量放到前面"hello".equals(s)
- 如果使用
- 在Java中,判断
switch多重选择
使用
switch时,注意case语句并没有花括号{}如果有几个
case语句执行的是同一组语句块,可以在执行语句前多放几个case使用
switch语句时,只要保证有break,case的顺序不影响程序逻辑使用IDE时,可以自动检查是否漏写了
break语句和default语句,方法是打开IDE的编译检查。switch表达式
- 新语法使用
->,如果有多条语句,需要用{}括起来,不要写break语句
- 新语法使用
public class Main {
public static void main(String[] args) {
String fruit = "apple";
switch (fruit) {
case "apple" -> System.out.println("Selected apple");
case "pear" -> System.out.println("Selected pear");
case "mango" -> {
System.out.println("Selected mango");
System.out.println("Good choice!");
}
default -> System.out.println("No fruit selected");
}
}
}
- 新的
switch语法,不但不需要break,还可以直接返回值。
public class Main {
public static void main(String[] args) {
String fruit = "apple";
int opt = switch (fruit) {
case "apple" -> 1;
case "pear", "mango" -> 2;
default -> 0;
}; // 注意赋值语句要以;结束
System.out.println("opt = " + opt);
}
}
- yield
- 本来新的switch语句返回简单的值没有问题,但是如果需要复杂的语句,我们也可以写很多语句,放到
{...}里,然后,用yield返回一个值作为switch语句的返回值。
while循环
- 当
while循环是一个死循环,但是,Java的int类型有最大值,达到最大值后,再加1会变成负数,结果,意外退出了while循环。
do while循环
for循环
for (初始条件; 循环检测条件; 循环后更新计数器) {
// 执行语句
}
使用
for循环时,千万不要在循环体内修改计数器!为了保证变量应该把访问范围缩到最小的原则,对于for循环中使用的
i最好在循环体内定义。for循环还可以缺少初始化语句、循环条件和每次循环更新语句for each循环
public class Main {
public static void main(String[] args) {
int[] ns = { 1, 4, 9, 16, 25 };
for (int n : ns) {//注意形式,先定义数组元素n,注意这里不再是计数器n,它对应着数组的每一个元素,在循环的主语句中可以直接调用。
System.out.println(n);
}
}
}
- 除了数组外,`for each`循环能够遍历所有“可迭代”的数据类型,包括后面会介绍的`List`、`Map`等
break和continue
- 无论是
while循环还是for循环,有两个特别的语句可以使用,就是break语句和continue语句。 break语句总是跳出最近的一层循环。
到头来还是逃不过Java - 流程控制的更多相关文章
- JAVA流程控制
JAVA流程控制 example1: --输出九九乘法表 public class chengfabiao { public static void main (String[] args){ ...
- Java学习笔记之:Java流程控制
一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操 ...
- Java流程控制练习--万年历
Java流程控制练习--万年历 标签: Java入坑之旅 0x01. 打印倒三角和正三角 public static void main(String[] args) { // TODO Auto-g ...
- Java 流程控制
Java 流程控制 Java 分支结构 - if...else/switch 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支 ...
- JAVA 流程控制之选择语句
在程序设计时,有三种基本技术可以改变程序的流程控制: 调用方法: 选择: 循环. 在这里,我们主要来讲讲选择语句. JAVA中的选择语句与C语言中的基本相同,包括: if 语句: if/else 语句 ...
- 《快乐编程大本营》java语言训练班-第4课:java流程控制
<快乐编程大本营>java语言训练班-第4课:java流程控制 第1节. 顺序执行语句 第2节. 条件分支语句:if条件语句 第3节. 条件分支语句:switch 条件语句 第4节. 条件 ...
- Java流程控制,for,switch,while.break,continue,return
Java流程控制,for,switch,while.break,continue,return
- 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结
053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...
- 052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试——debug2 多断点调试程序
052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试--debug2 多断点调试程序 本文知识点: Eclipse下程序调 ...
随机推荐
- 六十四、SAP中的内表的9种定义方式
一.内表一共有9种定义方式,如下: 二.执行如下 *&--------------------------------------------------------------------- ...
- gdb 常用选项
gdb 常用选项 help:查看命令帮助,具体命令查询在gdb中输入help + 命令,简写h run:重新开始运行文件(run-text:加载文本文件,run-bin:加载二进制文件),简写r st ...
- tcp协议与dup协议知识总结
在工作之余用xmind总结了一些UDP协议与TCP协议的知识点,如果有需要可以通过下方的留言,分享xmind文件和xmind软件.
- UVA - 12113 Overlapping Squares(重叠的正方形)
题意:给定一个4*4的棋盘和棋盘上所呈现出来的纸张边缘,问用不超过6张2*2的纸能否摆出指定的形状. 分析:2*2的纸在4*4的棋盘上总共有9种放置位置,枚举所有的放置位置即可.枚举情况总共种. #p ...
- MFC OCX 控件事件的添加和处理
1.控件的事件一般都是由对外的接口引发到,这里定一个接口先: 该接口有一个字符串参数,表示调用者将传入一个字符串,传进来后,我们将取得字符串的长度. 2.添加事件: 事件应该是属于窗口的,所以在Ctr ...
- SpringAOP 使用注解的简单使用
1. 导入jar包 /SpringAOPmy/lib/com.springsource.net.sf.cglib-2.2.0.jar/SpringAOPmy/lib/com.springsource. ...
- cf 758D - Ability To Convert
从后往前贪心就好了.各种各样0的情况太BT了.. (各种爆long long,f**k) #include<bits/stdc++.h> #define LL long long #def ...
- ArchLinux安装(UEFI)
ArchLinux安装(UEFI) 一.连接网络 1.连接 # wifi-menu 2.检查是否联通 (ctrl+c停止) # ping www.baidu.com 3.远程安装 注:连接上网络之后可 ...
- 用ps画一个Gif的小房子(1)
效果如图: 制作方法: 1.新建200*200的画布:复制一块小房子图片 2.点击窗口-时间轴-勾选帧动画 3.如图所示(我这边是一帧对应一个图层) 4.新建图层-这边要新建24个图层,每个图层对应不 ...
- POJ - 3658 Artificial Lake
题意:向N个连续且高度不同的平台灌水,平台各有宽度,且高度各不相同.一开始,先向高度最低的平台灌水,直到灌满溢出,流向其他的平台,直至所有平台都被覆盖.已知每分钟注入高度为1且宽度为1的水,问每个平台 ...