Java基础笔记6(Scanner、程序结构)
Java基础笔记6(Scanner、程序结构)
Scanner对象
java.util.Scanner是Java5的新特征,可以通过Scanner类来获取用户的输入
基本语法
1
Scanner scan = new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串
1
2String s1 = scanner.next(); //输入:hello world
System.out.println(s1); //输出:hello1
2String s2 = scanner.nextLine(); //输入:hello world
System.out.println(s1); //输出:hello world- next
- 读取到有效字符后才可以结束输入
- 对输入的有效字符之前遇到的空白,next()方法会将其自动过滤掉
- 只有输入有效字符后才将后面输入的空白作为分隔符或结束符
- next()不能得到带有空格的字符串
- nextLine()
- 以Enter为结束符,nextLine()方法返回输入回车之前的所有字符
- 可以获得带空格的字符串
- next
在读取前一般使用hasNext()与hasNextLine()判断是否还有输入的数据
1
2
3
4
5while(scanner.hasNextInt()){
System.out.print(scanner.nextInt()+" ");
}
//输入:1 2 3 4 5 a b 6 c
//输出:1 2 3 4 5属于IO流的类不关闭会一直占用资源,用完就关掉
1
scan.close();
顺序结构
语句与语句之间从上到下顺序执行
选择结构
if单选择结构
1 | if(条件){ |
if-else双选择结构
1 | if(条件){ |
if多选择结构
1 | if(条件1){ |
if嵌套
1 | if(条件1){ |
switch多选择结构
- switch case判断一个变量与一系列值中某个值是否相等,每一个值是一个分支
- switch语句变量类型
- byte、short、int、char
- 从Java SE 7开始支持String
- 判断String时,通过String的哈希值来判断
- case标签必须为字符串常量或字面量
- case穿透
- 如果不加break,执行完当前分支语句后,会停止判断,继续执行剩下每个分支的语句
1 | switch(expression){ |
循环结构
while循环
1 | while(布尔表达式){ |
只要条件为true,循环就会一直执行
一般我们需要在循环语句中,改变布尔表达式使其失效,使循环停下来
少部分情况需要循环一直执行,如服务器的请求响应监听
do while循环
1 | do{ |
- do while循环至少执行一次
- while先判断后执行,do while先执行后判断
for循环
1 | for(初始化;布尔表达式;更新){ |
for循环执行次数在执行前就可以确认
初始化只进行一次,只能声明一种类型,可以初始化多个循环控制变量,也可以是空语句
- 每次循环中各部分执行顺序,布尔表达式 -> 循环语句 -> 更新
for each
1 | int[] nums = {1,3,6,8,23}; |
break continue
- break用于强行退出循环,不执行循环中剩余的语句
- continue在循环语句中用于终止某次循环,即跳过循环体中尚未执行的语句,接着进行下一次循环判定
- (不建议使用)break 和 continue可以加标签
1 | label: for (int i = 0; i < 3; i++) { |
1 | label: for (int i = 0; i < 3; i++) { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 PlanZ!