1.如何实现键盘录入数据
1)导包 import java.util.Scanner;
2)创建键盘录入对象Scanner Scanner input = new Scanner(System.in);
3)调用方法接收数据 数据类型 变量名 = input.nextXXX();
2.键盘录入数据案例 - 获得字符串
//导包
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
//创建Scanner对象
Scanner input=new Scanner(System.in);
//提示语句
System.out.println("请输入一个字符串:");
//输入内容
String name = input.next();
//显示内容
System.out.println("输入的内容是:"+name);
}
}
3.键盘录入数据案例 - 获得单个字符
//导包
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) {
//创建Scanner对象
Scanner input=new Scanner(System.in);
//提示语句
System.out.println("请输入一个字符串:");
//输入内容
char sex = input.next()charAt(0);
//显示内容
System.out.println("输入的内容是:"+sex);
}
}
4.键盘录入数据案例 - 获得数字
//导包
import java.util.Scanner;
public class Test03 {
public static void main(String[] args) {
//创建Scanner对象
Scanner input=new Scanner(System.in);
//提示语句
System.out.println("请输入整数:");
//输入内容
int num1=input.nextInt();
//提示语句
System.out.println("请输入一个小数:");
//输入内容
double num2=input.nextDouble();
//显示内容
System.out.println("输入的内容是:num1="+num1+",num2="+num2);
}
}
5.流程控制语句分类
1)顺序结构:按照写代码的顺序 一次执行。
2)选择结构:根据条件的不同有选择的执行不同的代码。
3)循环结构:在一定条件下 反复执行某一块代码。
4)控制跳转语句:在一定的条件下会改变当前正在执行的程序。
6.if选择结构
①.最基本if选择结构
语法:
if(关系表达式){
语句体;
}
执行流程说明:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体
【代码】
import java.util.Scanner;
public class Test04 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入小明的成绩:");
int score = input.nextInt();
if (score>95){
System.out.println("奖励一个棒棒糖!");
}
System.out.println("程序结束!!!");
}
}
②.if-else选择结构
语法:
if(关系表达式) {
语句体1;
}else {
语句体2;
}
执行流程说明:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2
【代码】
import java.util.Scanner;
public class Test05 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入小明的成绩:");
int score = input.nextInt();
if (score>95){
System.out.println("奖励一个棒棒糖!!");
}else{
System.out.println("惩罚写代码!!");
}
System.out.println("程序结束!!!");
}
}
③.多重if选择结构
语法:
if (关系表达式1) {
执行语句1;
} else if (关系表达式2) {
执行语句2;
}
...
else if (关系表达式n) {
执行语句n;
} else {
执行语句n+1;
}
执行流程说明:
首先判断关系表达式1看其结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果是true就执行语句体2
如果是false就继续判断关系表达式…看其结果是true还是false
…
如果没有任何关系表达式为true,就执行语句体n+1。
【代码】
import java.util.Scanner;
public class Test06 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入小明的成绩:");
int score = input.nextInt();
if (score>=90){
System.out.println("优秀!!!");
}else if (score>=80 && score <90){
System.out.println("良好!!!");
}else if(score>=70 && score<80){
System.out.println("中等!!!");
}else if(score>=60 && score<70){
System.out.println("及格!!!");
}else{
System.out.println("不及格!!!");
}
System.out.println("程序结束!!!");
}
}
④.嵌套if选择结构
语法:
if (关系表达式1) {
if(关系表达式2){
执行语句1;
}else{
执行语句2;
}
} else {
执行语句3;
}
执行流程说明:
首先判断关系表达式1看其结果是true还是false
如果是false执行执行语句3
如果是true进入到if内部执行关系表达式2
如果关系表达式2的结果是true执行执行语句1
如果关系表达式2的结果是false执行执行语句2
【代码】
import java.util.Scanner;
public class Test07 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入比赛时间:");
int time=input.nextInt();
if(time<15){//进入决赛
System.out.println("请输入性别:");
char sex=input.next().charAt(0);
if (sex=='女'){
System.out.println("进入女子组决赛!!!");
}else{
System.out.println("进入男子组决赛!!!");
}
}else{
System.out.println("很遗憾,您没有进入决赛!!!");
}
System.out.println("程序结束!!!");
}
}
小结:
1)基本if选择结构解决单一的判断问题。
2)if-else选择结构解决非此即彼的判断问题
3)多重if选择结构始终是同一个变量在不同的取值区间中得到不一样的结果
4)嵌套if选择结构是多条件判断,并且变量的个数大于一个,在解决嵌套if的时候要首先明确外层和内层分别判断的条件是什么
7.switch选择结构
语法:
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执行流程说明:
首先计算出表达式的值;
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束;
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
【代码】
import java.util.Scanner;
public class Test08 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入Java比赛名次:");
int num=input.nextInt();
switch (num){
case 1:
System.out.println("奖励笔记本电脑一台!!!");
break;
case 2:
System.out.println("奖励华为手机一部!!!");
break;
case 3:
System.out.println("奖励移动硬盘一个!!!");
break;
case 4:
System.out.println("奖励优盘一个!!!");
break;
default:
System.out.println("什么奖励都没有!!!");
break;
}
System.out.println("程序结束!!!");
}
}
8.case穿透
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。
【代码】
import java.util.Scanner;
public class Test09 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入Java比赛名次:");
int num=input.nextInt();
switch (num){
case 1:
System.out.println("奖励笔记本电脑一台!!!");
case 2:
System.out.println("奖励华为手机一部!!!");
case 3:
System.out.println("奖励移动硬盘一个!!!");
case 4:
System.out.println("奖励优盘一个!!!");
default:
System.out.println("什么奖励都没有!!!");
}
System.out.println("程序结束!!!");
}
}
【注意】
上述程序中,执行case1后,由于没有break语句,程序会一直向后走,不会在判断case,也不会理会break,直接 运行完整体switch。 所以在写的时候要记得加上break。
小结:
1)switch选择结构表达式的数据类型是:int、short、byte、char、枚举,JDK7及以后也可以使用String类型。
2)由于case存在穿透性,因此初学者在编写switch语句时,必须要写上break。
3)case语句后只能是常量,不能是变量。
4)case语句的顺序可以不按照顺序,但通常情况建议按照顺序。