Java学习第四天
Java流程控制
用户交互
-
在之前学习的基本语法中并未实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户输入java.util.Scanner是JDK5的新特征,我们可以通过Scanner来获取用户的输入
-
基本语法
Scanner s= new Scanner (System.in);
-
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一定要使用hasNext()与hasNextLine()判断是否还有输入的数据
next():
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
- 只有输入有效字符后才将其后面输入得空白作为分隔符或者结束符
- next()不能得到带有空格的字符串
nextLine():
- 以Enter为结束符也就是说nextLine()方法返回的是输入回车之前的所有字符
- nextLine()方法可以获得空白
-
代码示范
package Scanner; import java.util.Scanner; public class Dome03 { //next()方法 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("用next方法输出:"); if(scanner.hasNext()){ String str= scanner.next(); System.out.println("输出的数据为:"+str); } scanner.close();; } }package Scanner; import java.util.Scanner; public class Dome04 { //nextLine()方法 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入数据:"); String str = scanner.nextLine(); System.out.println("输出的内容为:"+str); scanner.close(); } }package Scanner; import java.util.Scanner; public class Dome01 { //Scanner进阶题型 public static void main(String[] args) { Scanner scanner =new Scanner(System.in); int i = 0; float f = 0.0f; System.out.println("输入一个整数:"); if(scanner.hasNextInt()){ i = scanner.nextInt(); System.out.println("s输出整数数据:"+i); } else { System.out.println("输出的值不是整数数据!"); } System.out.println("输入一个小数:"); if(scanner.hasNextFloat()){ f = scanner.nextFloat(); System.out.println("s输出整数数据:"+f); } else { System.out.println("输出的值不是小数数据!"); } scanner.close(); } }package Scanner; import java.util.Scanner; public class Dome02 { //练习题:我们可以输入多个数字,并求其总和及平均数,每输入一个数字用回车确认通过输入非数字来结束输入并输出执行结果; 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=i+1; sum=sum+x; System.out.println("你输入的"+i+"个数据,当前结果sum=" +sum); } System.out.println("输入数据的和为:"+sum); System.out.println("输入数据的平均数为:"+(sum / i)); scanner.close(); } }
顺序结构
-
java的基本结构就是顺序结构,除非特别指明,否则就按照一句一句执行
-
顺序结构是最简单的算法结构
-
语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,她是任何一个算法都离不开的一种基本算法结构
选择结构
-
if单选择结构
-
if双选择结构
-
if多选择结构
-
嵌套的if结构
-
switch多选择结构
if单选择结构
- 图解

-
语法
if(布尔表达式){
}
-
代码示例
package Scanner; import java.util.Scanner; public class IfDome01 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入数据:"); if(scanner.hasNextInt()){ System.out.println("是整数!"); } System.out.println("不是整数!"); scanner.close(); } }
if双选择结构
- 图解

-
语法
if(布尔表达式){
}else{
}
-
代码示例
package Scanner; import java.util.Scanner; public class IfDome02 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入成绩:"); int score= scanner.nextInt(); if(score > 60){ System.out.println("及格"); }else{ System.out.println("不及格"); } scanner.close(); } }
if多选择结构
- 图解

-
语法
if(布尔表达式 1){
}else if(布尔表达式 2){
}else if(布尔表达式3){
}else{
}
-
代码示例
package Scanner; import java.util.Scanner; public class IfDome03 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入成绩:"); int score = scanner.nextInt(); if(score==100){ System.out.println("恭喜满分!"); }else if(score>90&&score<100){ System.out.println("A等级!"); }else if(score>80&&score<90){ System.out.println("B等级!"); }else if(score>70&&score<80){ System.out.println("C等级!"); }else if(score>60&&score<70){ System.out.println("D等级!"); }else if(score>0&&score<60){ System.out.println("不及格!"); }else{ System.out.println("输入值不在成绩范围,请重新输入!"); } scanner.close(); } }
switch
-
switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
-
switch语句中的变量类型可以是:
-
byte、short、int或者char
-
从JavaSE7开始switch支持字符串String类型了
-
case标签必须为字符串常量或字面量
-
-
代码
package Switch; public class SwitchDome01 { public static void main(String[] args) { char grade ='C'; switch(grade){ case 'A': System.out.println("优秀"); break; case'B': System.out.println("良好"); break; case'C': System.out.println("及格"); break; case'D': System.out.println("挂科"); default: System.out.println("未知等级"); } } }

浙公网安备 33010602011771号