一、基础阶段:
1、用户交互Scanner
Scanner对象:
之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。
java.util.Scanner 是Java5的新特征,我们可以通过Scanner类来获取用户的输入。
基本语法:
Scanner s = new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4、next()不能得到带有空格的字符串。
nextLine():
1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
用hasNext()
1 package com.zhexuejia.www.scanner; 2 3 import java.util.Scanner; 4 5 public class Demo01 { 6 public static void main(String[] args) { 7 //创建一个扫描对象,用户接收键盘数据 8 Scanner scanner = new Scanner(System.in); 9 10 System.out.println("使用next方式接收"); 11 12 //判断用户有没有输入字符串 13 if(scanner.hasNext()){ 14 //使用next方式接收 15 String str = scanner.next(); 16 System.out.println("输入的内容为:"); 17 } 18 19 //凡是输入IO流的类,如果不关闭会一直占用资源,要养成好习惯用完就关掉; 20 scanner.close(); 21 22 } 23 }
使用hasNextLine()
1 package com.zhexuejia.www.scanner; 2 3 import java.util.Scanner; 4 5 public class Demo02 { 6 public static void main(String[] args) { 7 //从键盘接收数据 8 Scanner scanner = new Scanner(System.in); 9 10 System.out.println("使用next方式接收"); 11 12 //判断是否还有输入 13 if(scanner.hasNextLine()){ 14 String str = scanner.nextLine(); 15 System.out.println("输出的内容为:"+str); 16 } 17 scanner.close(); 18 } 19 }
1 package com.zhexuejia.www.scanner; 2 3 import java.util.Scanner; 4 5 public class Demo03 { 6 public static void main(String[] args) { 7 //创建一个扫描对象,用户接收键盘数据 8 Scanner scanner = new Scanner(System.in); 9 10 System.out.println("请输入数据:"); 11 12 //使用nextLine()方式接收 13 String str = scanner.nextLine(); 14 System.out.println("输入的内容为:"); 15 16 17 //凡是输入IO流的类,如果不关闭会一直占用资源,要养成好习惯用完就关掉; 18 scanner.close(); 19 } 20 }
1 package com.zhexuejia.www.scanner; 2 3 import java.util.Scanner; 4 5 public class Demo04 { 6 public static void main(String[] args) { 7 Scanner scanner = new Scanner(System.in); 8 9 //从键盘接收数据 10 int i = 0; 11 float f = 0.0f; 12 13 System.out.println("请输入整数:"); 14 if(scanner.hasNextInt()){ 15 i = scanner.nextInt(); 16 System.out.println("输出的整数为:"+i); 17 }else { 18 System.out.println("输入的不知整数!"); 19 } 20 System.out.println("请输入小数:"); 21 if(scanner.hasNextFloat()){ 22 f = scanner.nextFloat(); 23 System.out.println("输出的小数为:"+f); 24 }else { 25 System.out.println("输入的不知小数!"); 26 } 27 28 29 30 scanner.close(); 31 } 32 }
1 import java.util.Scanner; 2 3 public class Demo05 { 4 public static void main(String[] args) { 5 Scanner scanner = new Scanner(System.in); 6 7 //我们乐园输入多个数字,并求其总和和平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出结果 8 double sum = 0; 9 //输入了多少个数字 10 int m = 0; 11 12 while (scanner.hasNextDouble()){ 13 double x = scanner.nextDouble(); 14 m++; 15 sum = sum + x; 16 } 17 System.out.println(m + "个数的和为:"+sum); 18 System.out.println(m + "个数的平均值为:" +(sum / m)); 19 scanner.close(); 20 } 21 }
顺序结构:
JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序- -句- -句执行。
顺序结构是最简单的算法结构。
语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤
组成的,它是任何一-个算法都离不开的一种基本算法结构。
选择结构:
1、if单选择结构
◆我们很多时候需要去判断十个东西是否可行,)然后我们才去执行,这样一个过程在程序中用if语句来表示
语法:
if(布尔表达式){ //如果布尔表达式为true将执行的语句 }
2、if双选择结构
◆那现在有个需求,公司要收购一个软件,成功了,给人支付100万元,失败了,自己找人开发。
这样的需求用一个if就搞不定了,我们需要有两个判断,需要- -个双选择结构,所以就有了if-
else结构。
语法:
1 if(布尔表达式){ 2 //如果布尔表达式为true将执行的语句 3 }else{ 4 //如果布尔表达式为flase 5 }
1 import java.util.Scanner; 2 3 public class ifDemo02 { 4 public static void main(String[] args) { 5 //考试分数大于60就是及格,小于60分就是不及格 6 Scanner scanner = new Scanner(System.in); 7 System.out.println("请输入成绩:"); 8 int score = scanner.nextInt(); 9 if(score > 60){ 10 System.out.println("及格"); 11 }else{ 12 System.out.println("不及格"); 13 } 14 } 15 }
3、if多选择结构
我们发现刚才的代码不符合实际情况,真实的情况还可能存在ABCD,存在区间多级判断。比如
90-100就是A, 80-90就是B..等等,在生活中我们很多时候的选择也不仅仅只有两个,所以我
们需要一个多选择结构来处理这类问题!
语法:
1 import java.util.Scanner; 2 public class ifDemo03 { 3 public static void main(String[] args) { 4 //考试分数大于60就是及格,小于60分就是不及格 5 Scanner scanner = new Scanner(System.in); 6 System.out.println("请输入成绩:"); 7 int score = scanner.nextInt(); 8 if(score == 100){ 9 System.out.println("满分"); 10 }else if(score < 100 && score >=90){ 11 System.out.println("A级"); 12 }else if(score < 90 && score >=80){ 13 System.out.println("B级"); 14 }else if(score < 80 && score >=70){ 15 System.out.println("C级"); 16 }else if(score < 70 && score >=60){ 17 System.out.println("D级"); 18 }else if(score < 60 && score >=0){ 19 System.out.println("D级"); 20 }else { 21 System.out.println("成绩不合法"); 22 } 23 } 24 }
4、嵌套的if结构
使用嵌套的if..else语句是合法的。也就是说你可以在另- -个if或者else if语句中使用if或
者else if语句。你可以像if语句- -样嵌套else if..else.
语法:
5、switch多选择结构
◆多选择结构还有一个实现方式就是switch case语句。
◆switch case语句判断-一个变量与一系列值中某个值是否相等,每个值称为-个分支。
switch语句中的变量类型可以是:
byte、short, int 或者char。
从JavaSE7开始
switch支持字符串String类型了
同时case标签必须为字符串常量或字面量。