Java基础语法02
一、数据输入
我们可以通过Scanner类来获取用户的输入。
1、导包,Scanner类在Java.util包下,所以需要将该类导入。导包的语句需要定义在类的上面.
import java.util.Scanner;
2、创建Scanner对象
Scanner sc = new Scanner(System.in);//创建Scaner对象,sc表示变量名。
3、接收数据
int i = sc.nexInt();//表示将键盘录入的值赋给int数返回。
示例:
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建对象
Scanner sc = new Scanner(System.in);
//接收数据
int x = sc.nextInt();
//输出数据
System.out.println("x的值为"+x);
}
}
示例:
import java.util.Scanner;
public class ArithmeticOperator{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);// 创建扫描器,获取控制台输入的值
System.out.println("请输入两个数字,用空格隔开(num1 num2):");// 输出提示
double num1 = sc.nextDouble();// 记录输入的第一个数字
double num2 = sc.nextDouble(); // 记录输入的第二个数字
System.out.println("num1+num2的和为:"+(num1+num2));// 计算和
System.out.println("num1-num2的差为:"+(num1-num2));// 计算差
System.out.println("num1*num2的积为:"+(num1*num2));// 计算积
System.out.println("num1/num2的商为:"+(num1/num2));// 计算商
System.out.println("num1%num2的余数为:"+(num1%num2));// 计算余数
sc.close(); // 关闭扫描器
}
}
二、流程控制语句
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每 条语句的执行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。
2.1流程控制语句分类
1、顺序结构
2、分支结构(if、switch)
3、循环结构(for、while、do…while)
2.2、顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行, 程序中大多数的代码都是这样执行的。
2.3、分支语句之if语句
1、【一种判断情况】
格式:
if (关系表达式) {
语句体;
}
执行流程:
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体
③如果关系表达式的值为false就不执行语句体
④继续执行后面的语句内容
示例:
public class IfDemo01 {
public static void main(String[] args) {
System.out.println("开始");
//定义两个变量
int a = 10;
int b = 20;
//需求:判断a和b的值是否相等,如果相等,就在控制台输出:a等于b
if(a == b) {
System.out.println("a等于b");
}
//需求:判断a和c的值是否相等,如果相等,就在控制台输出:a等于c
int c = 10;
if(a == c) {
System.out.println("a等于c");
}
System.out.println("结束");
}
}
2、【两种判断情况】
格式:
if (关系表达式) {
语句体1;
} else {
语句体2;
}
执行流程:
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体1
③如果关系表达式的值为false就执行语句体2
④继续执行后面的语句内容
示例:
public class IfDemo02 {
public static void main(String[] args) {
System.out.println("开始");
//定义两个变量
int a = 10;
int b = 20;
b = 5;
//需求:判断a是否大于b,如果是,在控制台输出:a的值大于b,否则,在控制台输出:a的值不大于b
if(a > b) {
System.out.println("a的值大于b");
} else {
System.out.println("a的值不大于b");
}
System.out.println("结束");
}
}
案例:
需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还 是偶数。
分析:
①为了体现任意给出一个整数,采用键盘录入一个数据
②判断整数是偶数还是奇数要分两种情况进行判断,使用if…else结构
③判断是否偶数需要使用取余运算符实现该功能 number % 2 == 0
④根据判定情况,在控制台输出对应的内容
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
//为了体现任意给出一个整数,采用键盘录入一个数据。(导包,创建对象,接收数据)
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int number = sc.nextInt();
//判断整数是偶数还是奇数要分两种情况进行判断,使用if..else结构
//判断是否偶数需要使用取余运算符实现该功能 number % 2 == 0
//根据判定情况,在控制台输出对应的内容
if(number%2 == 0) {
System.out.println(number + "是偶数");
} else {
System.out.println(number + "是奇数");
}
}
}
3、【多种情况判断】
格式:
if (关系表达式1) {
语句体1;
} else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
执行流程:
①首先计算关系表达式1的值
②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
④…
⑤如果没有任何关系表达式为true,就执行语句体n+1。
示例:键盘录入一个星期数(1,2,…7),输出对应的星期一,星期二,…星期日
import java.util.Scanner;
public class IfDemo04 {
public static void main(String[] args) {
System.out.println("开始");
// 需求:键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个星期数(1-7):");
int week = sc.nextInt();
if(week == 1) {
System.out.println("星期一");
} else if(week == 2) {
System.out.println("星期二");
} else if(week == 3) {
System.out.println("星期三");
} else if(week == 4) {
System.out.println("星期四");
} else if(week == 5) {
System.out.println("星期五");
} else if(week == 6) {
System.out.println("星期六");
} else {
System.out.println("星期日");
}
System.out.println("结束");
}
}
if语句格式3案例:
需求:小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可 以控制小明的得分,请用程序实现小明到底该获得什么样的礼物(95分以上山地自行车一辆,90分以上 游乐场玩一次,80分以上变形金刚玩具一个,其他胖揍一顿),并在控制台输出。
分析:
①小明的考试成绩未知,可以使用键盘录入的方式获取值
②由于奖励种类较多,属于多种判断,采用if…else…if格式实现
③为每种判断设置对应的条件
④为每种判断设置对应的奖励
import java.util.Scanner;
public class IfDemo05 {
public static void main(String[] args) {
//小明的考试成绩未知,可以使用键盘录入的方式获取值
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个分数:");
int score = sc.nextInt();
//由于奖励种类较多,属于多种判断,采用if...else...if格式实现
//为每种判断设置对应的条件
//为每种判断设置对应的奖励
//数据测试:正确数据,边界数据,错误数据
if(score>100 || score<0) {
System.out.println("你输入的分数有误");
} else if(score>=95 && score<=100) {
System.out.println("山地自行车一辆");
} else if(score>=90 && score<=94) {
System.out.println("游乐场玩一次");
} else if(score>=80 && score<=89) {
System.out.println("变形金刚玩具一个");
} else {
System.out.println("胖揍一顿");
}
}
}
2.4、switch语句
1、switch语句结构
switch (表达式) {
case 1:
语句体1;
break;
case 2:
语句体2;
break;
...
default:
语句体n+1;
[break;]
}
执行流程:
- 首先计算出表达式的值
- 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到 break就会结 束。
- 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束 掉。
2、练习
俗话说“商场如战场”,各大商家为了笼络有限的顾客,经常会打出各种各样的促销手段。例如, 会员折扣制度,即对会员的消费金额进行累加,当超过一定数额时,可以享受相应的折扣。累计消费金 额越高,享受的折扣越多。本实例将应用switch语句计算累计消费金额达到一定数额时,享受不同的折扣价格。
public class switchDemo01{
public static void main(String[] args){
float money = 1170; // 金额
String rebate = ""; // 折扣
if (money > 200){
int grade = (int)money/200; // 等级
switch (grade){
case 1:
rebate = "95折";
break;
case 2:
rebate = "9折";
break;
case 3:
rebate = "85折";
break;
case 4:
rebate = "83折";
break;
case 5:
rebate = "8折";
break;
case 6:
rebate = "78折";
break;
case 7:
rebate = "75折";
break;
case 8:
rebate = "73折";
break;
case 9:
rebate = "7折";
break;
case 10:
rebate = "65折";
break;
default:
rebate = "6折";
}
}
System.out.println("您累积消费金额为:"+money);// 输出消费金额
System.out.println("您将享受"+rebate+"优惠!");// 输出折扣比例
}
}
2.5 if语句和switch的区别
if语句和switch语句可以从使用的效率上来进行区别,也可以从实用性的角度来区分。如果从使用 的效率上进行区分,在对同一个变量的不同值作条件判断时,使用switch语句的效率相对更高一些,尤 其是判断的分支越多越明显。
如果从语句的实用性的角度去区分,那switch语句肯定不如if条件语句。if条件语句是应用最广泛和 最实用的语句。
技巧:
在程序开发的过程中,具体如何来使用if和switch语句根据实际的情况而定,尽量做到物尽其用, 不要因为switch语句的效率高就一味地使用,也不要因为if语句常用就不应用switch语句。要根据 实际的情况,具体问题具体分析,使用最适合的条件语句。
ate+“优惠!”);// 输出折扣比例
}
}
2.5 if语句和switch的区别
if语句和switch语句可以从使用的效率上来进行区别,也可以从实用性的角度来区分。如果从使用 的效率上进行区分,在对同一个变量的不同值作条件判断时,使用switch语句的效率相对更高一些,尤 其是判断的分支越多越明显。
如果从语句的实用性的角度去区分,那switch语句肯定不如if条件语句。if条件语句是应用最广泛和 最实用的语句。
技巧:
在程序开发的过程中,具体如何来使用if和switch语句根据实际的情况而定,尽量做到物尽其用, 不要因为switch语句的效率高就一味地使用,也不要因为if语句常用就不应用switch语句。要根据 实际的情况,具体问题具体分析,使用最适合的条件语句。