Scanner
next()
代码举例
import java.util.Scanner; //导入java工具包中的Scanner类
public class Scannertext {
public static void main(String[] args) {
//创建一个扫面类对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用hasNext来判断有无下一个输入");
if (scanner.hasNext()){
//使用next方法来接受参数
String str = scanner.next();
System.out.println("输入的内容为:"+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源,使用完毕后将流关闭!
scanner.close();
}
}
效果截图
结论
next()函数不可以接收带有空格的字符串
nextLine()
代码举例
import java.util.Scanner; //导入java工具包中的Scanner类
public class Scannertext {
public static void main(String[] args) {
//创建一个扫面类对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用hasNextLine来判断有无下一个输入");
if (scanner.hasNextLine()){
//使用nextLine方法来接受参数
String str = scanner.nextLine();
System.out.println("输入的内容为:"+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源,使用完毕后将流关闭!
scanner.close();
}
}
效果截图
结论
nextLine()函数返回的是输入回车之前的所有字符
练习
题目:输入多个数字,并求其总和与平均值,每输入一个数字用回车确认,通过输入的非数字来结束输入并输出执行结果。
import java.util.Scanner;//导入java工具包中的Scanner类
public class ScannerPractice {
public static void main(String[] args) {
//创建一个扫面类对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("请用户开始输入:");
//初始化总和sum=0
double sum = 0;
//初始化输入数字的个数m=0
int m = 0;
//通过循环判断是否还有输入,并且每次都进行求和计算
while (scanner.hasNextDouble()){
//进行求和计算
sum = sum + scanner.nextDouble();
//输入的数字个数加一
m++;
}
System.out.println(m +"个数的和为"+ sum);
System.out.println(m +"个数的平均值为"+ (sum/m));
//凡是属于IO流的类如果不关闭会一直占用资源,使用完毕后将流关闭!
scanner.close();
}
}
效果截图
增强For循环
For循环的死循环写法
for(;;){}
实例
//循环输出数组arry。
int[] arry = {10,20,30,40,50};
//IDEA增强For快捷键:arry.for
for (int i : arry) {
System.out.println(i);
}
关于goto关键字
java中的goto关键字
goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto。然而,在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子——带标签的break和continue。
java中的标签
“标签”是指后面跟一个冒号的标识符,例如:label:
java中标签的用处
对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环。由于break和continue关键字通常只中断当前循环。但若随同标签使用,它们就会中断到存在标签的地方。
代码解读
public class LabelDemo {
public static void main(String[] args) {
//打印101~105之间的所有质数。
//在循环语句之前存在标签 label:
label:for (int i=101; i<150; i++){
for (int j=2; j<i/2; j++) {
if (i %j == 0){
continue label; //若满足条件则跳出本次循环,到标签处继续执行代码
}
}
System.out.print(i +" ");
}
}
}
使用javap -c LabelDemo进行反编译
效果截图
此类用法了解即可!