java学习笔记3-流程控制

自用的学习笔记,若有错误欢迎指出。
java包机制
为了更好地组织类,java提供了包机制,用于区别类名的命名空间。
包语句的语法格式为:
1 | package pkg1[.pkg2[.pkg3...]]; |
一般利用公司域名倒序来作为包名字。例如:www.baidu.com
,如果要建包的话:com.baidu.www
这样来命名。
导入包
当我们需要调用一些函数或者某一个包的成员的时候,我们需要在java程序中明确的导入该包。使用import
关键字来实现包导入。
1 | import package1[.package2...].(classname|*); |
使用*
来导入这个包下面的所有类
1 | import com.shadowprism.base.*; |
JavaDoc
javadoc
命令是用来生成自己的API文档的。- 参数信息
@author
作者名@version
版本号@since
指明需要最早使用的JDK版本@param
参数名@return
返回值情况@throws
异常抛出情况
文档注释可以给类加注释的同时也可以给方法加注释。
1 | package com.shadowprism.base; |
使用cmd在java文件目录下生成JavaDoc文档。
- 使用
cd /d F:你的文件\你的文件
来定位到你的文件位置 - 在java文件目录下输入
javadoc -encoding UTF-8 -charset UTF-8 Doc.java
1 | #使用-encoding UTF-8 -charset UTF-8是为了防止文章出现乱码 |
**有待解决的问题:
- 在cmd中输入的
javadoc
输出结果为“不是内部指令…”,但是在jdk
的bin
目录下却可以运行javadoc -help
。
java流程控制
Scanner对象
java提供的一个工具类,我们可以获取用户的输入。java.util.Scanner
是Java5的新特征,我们可以通过Scanner
类来获取用户的输入。
基本语法:
1 | Scanner scan = new Scanner(System.in); |
通过Scanner
类的next()
于nextLine()
方法获取输入的字符串,在读取前我们一般需要使用hasNext()
与hasNextLine()
判断是否还有输入的数据。
实例:
1 | import java.util.Scanner; |
注意:在hasNext()
方法中,如果输入的内容为hello world
这样带中间带空格的字符串,最终结果只会输出为hello
。需要使用hasNextLine()
方法。
next():
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的空白,
next()
方法会自动将其去掉 - 只有输入有效字符后才将其后面的空白作为分隔符或者结束符
next()
不能得到带有空格的字符串
nextLine():
- 以回车键ENTER为结束符,也就是说
nextLine()
方法返回的是输入回车之前的所有字符 - 可以获得空白
- 以回车键ENTER为结束符,也就是说
Scanner进阶
实例:我们可以输入多个数字,并且求其总和和平均数,每输入一个数字用ENTER键确认。如果输入了非数字就表示我们要结束输入,执行输出结果。
1 | import java.util.Scanner; |
结构
顺序结构
- java的基本结构就是顺序结构,除非特别指明,否则就按顺序一句一句执行。
- 顺序结构是最简单的算法结构。
- 语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
if选择结构
if单选择结构
我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if
语句来表示。
语法:
1 | if(布尔表达式){ |
实例:
1 | Scanner scanner = new Scanner(System.in); |
if双选择结构
例子:如果一个公司需要收购软件,如果成功了就需要给别人支付100w。如果失败就选择自己开发软件。这样就需要有两个判断,需要一个双选择结构,所以就有了if -else
结构。
语法:
1 | if(布尔表达式){ |
实例:
1 | Scanner scanner = new Scanner(System.in); |
if多选择结构
语法:
1 | if(布尔表达式){ |
实例:
1 | Scanner scanner = new Scanner(System.in); |
if嵌套结构
语法:
1 | if(布尔表达式1){ |
switch多选择结构
多选择结构还有一个实现方式就是switch case
语句。
switch case
语句判断一个变量与一个系列值中某个值是否相等,每一个值称为一个分支。
switch
语句中的变量类型可以是:
byte
、short
、int
、或者char
- 从JavaSE7才开始
switch
支持字符串String
类型 - 同时
case
标签必须为字符串常量火字面量
语句:
1 | switch(expression){ |
实例:
1 | char grade = 'A'; |
*如果不使用break
的话,程序会一直运行到最后一个判断。
循环结构
while
循环do...while
循环for
循环
while循环
while
循环是最基本的循环,它的结构为:
1 | while(布尔表达式){ |
- 只要布尔表达式为
true
,循环就会一直下去。 - 我们大多数情况下是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。
- 少部分情况需要循环一直执行,比如服务器的请求响应监听等。
do while循环
- 对于
while
语句而言,如果不满足条件则不能进入循环。 do...while
循环至少会执行一次循环。
1 | int i = 0; |
For循环
for
循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。for
循环执行的次数是在执行前就确定的。
1 | for(初始化; 布尔表达式; 更新){ |
实例1:计算1-100之间的奇数和偶数的和
1 | int oddSum = 0; //初始化奇数和 |
实例2:用while
或者for
循环输出1-1000之间能被5整除的数,并且每行输出3个。
1 | for (int i = 0; i <= 1000; i++){ |
实例3:打印九九乘法表
1 | for (int i = 1; i <= 9; i++){ |
增强型for
循环
- 在java5引入了一种主要用于或集合的增强型for循环
- java增强型for循环语法格式如下:
1 | for (声明语句: 表达式){ |
- 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
- 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
break & continue
break
:在任何循环语句的主题部分,均可用break
来控制循环的流程,break
用于强行退出循环,不执行循环中剩余的语句。(break
语句在switch
语句中也有使用)continue
语句用于循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
流程控制练习
打印一个三角形
1 | for (int i = 1; i <= 5; i++){ |
打印一个等边三角形
1 | //第一步:打印等边三角形的左半边 |
后记
之后,我也会继续学习java,继续更新博客。分享知识、结交朋友,感谢你的观看!
参考链接
B站:狂神说java