例题1:Scanner类
学习目标:
Scanner类
学习内容:
- 学会使用Scanner类
- 通过Scanner类的next()与nextLine()方法获取时输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
- 学会使用Scanner进阶,即nextInt(),nextFloat(),nextDouble()。。。来判断
输入数据类型,要求输入输入的数据符合自己的要求,并且可以以非自己要求的数据类型可以结束输入。
问题:
输入多个数,并求其总和与平均数,每输入一个数字用回车来确认,通过输入非数字来结束输入并输出执行结果
解:
package Scanner;
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
//输入多个数,并求其总和与平均数,每输入一个数字用回车来确认,通过输入非数字来结束输入并输出执行结果
Scanner scanner = new Scanner(System.in);
double sum = 0;//记录输入总和
int i = 0;//记录输入个数
System.out.println("每输入一个数字用回车来确认,通过输入非数字来结束输入并输出执行结果:");
while (scanner.hasNextDouble()) {
double x=scanner.nextDouble();
i++;
sum=sum+x;
}
System.out.println(i+"个数的和为"+sum);
System.out.println(i+"个数的平均值为"+sum/i);
scanner.close();
}
}
例题2:流程控制
学习目标:
流程结构
学习内容:
学会if,for,while等结构实现不同的功能
问题:
打印三角形(无法独立完成)
解:
package Scanner_struct;
public class TestDemo1 {
public static void main(String[] args) {
//打印三角形
for (int i = 1; i <= 5; i++) {
for (int z = 5; z >= i; z--) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
for (int j = 0; j <i-1; j++) {
System.out.print("*");
}
for (int z = 5; z > i-1; z--) {
System.out.print(" ");
}
System.out.println();
}
}
}
要将三角形分为左右两边思考
标答:
package Scanner_struct;
public class TestDemo1 {
public static void main(String[] args) {
//打印三角形
for (int i = 1; i <= 5; i++) {
for (int z = 5; z >= i; z--) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
for (int j = 1; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
反思
1、不要想的太复杂
2、解决不了的问题,分部分进行解决,不要执着于一次性的