用户交互Scanner
1.Scanner对象
Scanner sc = new Scanner(System.in);
2.next和nextline
next:
package com.liu.scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("使用next接收:");
if(sc.hasNext()){
String str=sc.next();
System.out.println("输出的内容为:"+str);
}
sc.close();
}
}
测试数据:Hello World
结果:Hello
nextLine:
package com.liu.scanner;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
//创建扫描器对象,用于接收键盘数据
Scanner sc = new Scanner(System.in);
System.out.println("使用NextLine方式接收:");
//判断用户有没有输入字符串
if(sc.hasNextLine()){
//使用NextLine接收
String str = sc.nextLine();
System.out.println("输出内容为:"+str);
}
//IO流用完一定要关闭
sc.close();
}
测试数据:Hello World
结果:Hello World
两者区别
next():
- 一定要读取到有效字符后才可以结束输入
- 输入的有效字符之前遇到的空白,next()方法会将其自动减掉
- 只有输入有效字符后才将其后面输入的空白作为分隔或结束符
- next()不能得到带有空格的字符串
nextLine():
- 以Enter作为结束符,可以返回回车前的所有字符
- 可以获得空白
break和continue
1.break
主要用于循环和switch中,用来跳出整个语句块
package com.liu.struct;
public class Demo05 {
public static void main(String[] args) {
for (int i=0;i<5;i++){
System.out.println(i);
if(i==3){
break;
}
}
}
}
break不仅可以结束其所在的循环,还可以结束外层循环,但需要借助一个标签,如下:
package com.liu.struct;
public class Demo05 {
public static void main(String[] args) {
outer:
for(int i=1;i<5;i++){
for(int j=0;j<4;j++){
System.out.println(i+","+j);
if(j==2) {
break outer;
}
}
}
}
}
2.continue
适用于任何循环结构中,作用是让程序立刻跳转到下一次的迭代
在for循环中,continue使程序立即跳转到更新语句
while中,程序立即跳到布尔表达式的判断语句
package com.liu.struct;
public class Demo05 {
public static void main(String[] args) {
int i=0;
while(i<100){
i++;
if(i%10==0){
System.out.println();
continue;
}
System.out.print(i+"");
}
}
}
3.两者区别
break用于强行退出循环,不执行循环中剩余的语句
continue只是忽略本次循环剩下的语句,接着开始下一次循环