一阶段:JavaSE学习02拓展
看不懂或者不想看的可以跳往下一篇,这个只是让你知识面更宽更广
1.Scanner拓展
import java.util.Scanner;
/**
* @author 你的大龙猫啊
* @company www.com.hui
*/
/*
next():
1.一定要读取到有效字符后才可以结束输入
2.对输入有效字符之前遇到的空白,next()方法会自动将其去掉
3.只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
4.next不能得到带有空格的字符串
nextLine():
1.以enter为结束符,也就是说nextLine()方法返回的是输入之前的所有字符
2.可以获得空白
*/
public class Expand04_Scanner {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//使用next方式接收数据
System.out.println("请输入数据,此处使用next方式接收:");
//判断用户有没有输入字符串
if (sc.hasNext()) {
//使用next方式接收
String str = sc.next();
System.out.println("输出的内容为:" + str);
}
//凡是属于IO流的类如果不关闭一直占用资源,要养成好习惯用完就关掉
sc.close();
//使用nextLine方式接收数据
/* System.out.println("使用nextLine方式接收:");
//判断是否还有输入
if (sc.hasNextLine()) {
String str = sc.nextLine();
System.out.println("输出的内容为:" + str);
}
sc.close();*/
}
}
import java.util.Scanner;
/**
* @author 你的大龙猫啊
* @company www.com.hui
*/
/*
我们可以输入多个中,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束并输出执行结果
*/
public class Expand_Scanner02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//和
double sum = 0;
//计算输入了多少个数字
int count = 0;
System.out.println("请输入数据:");
//通过循环判断是否还有输入,并在里面对每一次进行求和统计
while (sc.hasNextDouble()) {
double number = sc.nextDouble();
count++;
sum += number;
System.out.println("你输入了第" + count + "个数据,当前结果sum=" + sum);
}
System.out.println(count + "个数的和为" + sum);
System.out.println(count + "个数的平均值是" + (sum / count));
sc.close();
}
}
2.位数分离拓展
import java.util.Scanner;
/**
* @author 你的大龙猫啊
* @company www.com.hui
*/
/*
需求:键盘录入一个三位数,将其拆分为个位 十位 百位后,打印在控制台 然后判断他是否是水仙花数(每位的立方和等于原数)
运行结果:请输入一个三位数
123
整数123个位为:3
整数123十位为:2
整数123百位为:1
*/
public class Expand_NumberSplit {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数");
int number = sc.nextInt();
int ge = number % 10;
int shi = number / 10 % 10;
int bai = number / 100 % 10; //公式:往下推总结
System.out.println("整数"+number +"的个位为:"+ge);
System.out.println("整数"+number +"的十位为:"+shi);
System.out.println("整数"+number +"的百位为:"+bai);
if(number==ge*ge*ge+shi*shi*shi+bai*bai*bai){
System.out.println(number+"是水仙花数");
}else{
System.out.println(number+"不是水仙花数");
}
}
}
3.质数拓展(了解即可,这个使用比较难理解的方式书写的(为了拓展goto),网上有简单的,可以自己去了解)
package com.hui.demo;
/**
* @author 你的大龙猫啊
* @company www.com.hui
*/
/*关于goto关键字
goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto。
然而,在break和continue在这两个关键字的身上,我们仍能看出一些goto的影子----带标签的break和continue。
"标签"是指后面跟一个冒号的标识符,例如:label:
对Java来说唯一用到的标签的地方是循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在器嵌套另一个循环,
由于break和continue关键字通常指中断当前循环,若随同标签使用,它们就会中断存在标签的地方
*/
/*
需求:打印101-150之间的质数
//质数是指在大于1的自然数中,除了1和他本身以外不再有其他因数的自然数
*/
public class Demo26_PrimeNumber {
public static void main(String[] args) {
//很麻烦,不建议使用
outer:for(int i=101;i<=150;i++){ //outer可以自己定义(与continue后面保持一致即可)
for(int j=2;j<i/2;j++){
if(i%j==0){
continue outer;
}
}
System.out.print(i+" ");
}
}
}
8万+





