添加参考答案
This commit is contained in:
parent
59bc12c3f7
commit
fef9210a61
|
@ -26,5 +26,31 @@ public class BMIexponent {
|
|||
}
|
||||
```
|
||||
#### 练习1:试着实现将37摄氏度转换为整型的华氏度。(提示∶ 华氏度 =32+摄氏度 ×1.8)
|
||||
#### 练习2:一个圆柱形粮仓,底面值径为 10米,高为 3米,该粮仓体积为多少立方米?如果每立方米屯粮 750 千克,该粮仓一共可储存多少千克粮食?
|
||||
```java
|
||||
public class CelsiusToFahrenheit {
|
||||
public static void main(String[] args) {
|
||||
int celsius = 37;
|
||||
System.out.println("要转换的摄氏度 = " + celsius);
|
||||
double fahrenheit = 9.0/5 * celsius + 32;
|
||||
int intfahrenheit = (int)fahrenheit;
|
||||
System.out.println("37摄氏度 = " + fahrenheit + "华氏度(未转换成int型)");
|
||||
System.out.println("37摄氏度 = " + intfahrenheit + "华氏度(转换成int型)");
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
#### 练习2:一个圆柱形粮仓,底面值径为 10米,高为 3米,该粮仓体积为多少立方米?如果每立方米屯粮 750 千克,该粮仓一共可储存多少千克粮食?
|
||||
```java
|
||||
public class Granary {
|
||||
public static void main(String[] args) {
|
||||
final double PI = 3.14;
|
||||
int diameter = 10;
|
||||
int height = 3;
|
||||
double volume = diameter/2 * diameter/2 * PI * height;
|
||||
System.out.println("该粮仓的体积 = " + volume + "立方米");
|
||||
int weight = 750;
|
||||
System.out.println("该粮仓一共可储存" + weight * volume + "千克粮食");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
|
228
Java/练习题:异常处理.md
228
Java/练习题:异常处理.md
|
@ -37,9 +37,77 @@ public class Tomato { // 创建西红柿类
|
|||
|
||||
#### 练习1
|
||||
在控制台上简述一个整型数组,如int a[] ={1,2,3,4 }; 数组遍历的过程,并体现出当i的值为多少时,会产生异常,异常的种类是什么?
|
||||
```java
|
||||
|
||||
public class Array {// 创建一个Array类
|
||||
public static void main(String args[]) {
|
||||
int a[] = { 1, 2, 3, 4 };// 定义一个int类型的数组
|
||||
for (int i = 0; i < 5; i++) {// 遍历数组
|
||||
try {// try块
|
||||
System.out.print("当 i = " + i + "," + i + " < 5 时,a[" + i + "] = " + a[i] + ";");// 控制台输出
|
||||
} catch (ArrayIndexOutOfBoundsException e) {// catch块
|
||||
System.out.println("当 i = " + i + "," + i + " < 5 时,a[" + i + "]不存在,会引起"
|
||||
+ e.toString().substring(10, e.toString().indexOf(':'))
|
||||
+ "异常,\n该异常为数组越界异常,主要是由于索引超出了数组的长度范围引起的");// 控制台输出
|
||||
}
|
||||
if (i != 4) {// 当i不等于4的时候
|
||||
System.out.println("执行i++," + "i = " + (i + 1) + "。");// 控制台输出
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
#### 练习2
|
||||
模拟一个简单的整数计算器(只能计算两个整数之间的加、减、乘、除的运算),并用try-catch捕捉InputMismatchException(控制台输入的不是整数)异常。
|
||||
```java
|
||||
|
||||
import java.util.InputMismatchException;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Calculator {// 创建一个Number类
|
||||
public static void main(String[] args) {
|
||||
Scanner sc = new Scanner(System.in); // 控制台输入
|
||||
try {// try块
|
||||
System.out.println("请输入第一个整数:"); // 提示信息
|
||||
int num1 = sc.nextInt(); // 声明一个int类型的变量num1接收控制台输入的信息
|
||||
|
||||
System.out.println("请输入运算符号(+、-、*、/):"); // 提示信息
|
||||
String symbol = sc.next(); // 声明一个String类型的变量symbol接收控制台输入的信息
|
||||
|
||||
System.out.println("请输入第二个整数:"); // 提示信息
|
||||
int num2 = sc.nextInt(); // 声明一个int类型的变量num1接收控制台输入的信息
|
||||
|
||||
int result = 0; // 定义并初始化“运算结果”
|
||||
|
||||
switch (symbol) {
|
||||
case "+":
|
||||
result = num1 + num2;
|
||||
break;
|
||||
case "-":
|
||||
result = num1 - num2;
|
||||
break;
|
||||
case "*":
|
||||
result = num1 * num2;
|
||||
break;
|
||||
case "/":
|
||||
if (num2 != 0) {
|
||||
result = num1 / num2;
|
||||
} else {
|
||||
System.out.println("除数怎么可能是“0”呢?");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
System.out.println("运算结果:" + result); // 输出运算结果
|
||||
} catch (InputMismatchException ime) {// catch块
|
||||
System.out.println("对不起!您输入的不是整数,已经引起了" + ime.toString() + "异常;\n" + "即:用户输入的信息与规定的参数类型不符时出现的异常"); // 输出异常的信息
|
||||
}
|
||||
sc.close();
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
## 实例2: 捕捉控制台输入西红柿单价后的异常
|
||||
西红柿的单价不是一成不变的,修改上面的实例,首先实现控制台输入单价的功能,然后在finally代码块中关闭控制台输入对象。
|
||||
|
@ -86,9 +154,69 @@ public class Tomato { // 创建西红柿类
|
|||
|
||||
#### 练习3
|
||||
银行账号中现有余额 1023.79 元。模拟取款,当在控制台上输入的取款金额不是整数时,会引起数字格式转换异常。
|
||||
```java
|
||||
|
||||
import java.util.InputMismatchException;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Account { // 创建一个Account类
|
||||
public static void main(String[] args) {
|
||||
double leftMoney = 1023.79; // 初始化“账户余额”
|
||||
Scanner sc = new Scanner(System.in);
|
||||
System.out.println("请输入取款金额:");
|
||||
try { // try块
|
||||
int drawMoney = sc.nextInt();
|
||||
double result = leftMoney - drawMoney; // 建立变量间的关系
|
||||
if(result >= 0) { // 当余额大于取款金额时
|
||||
System.out.println("您账号上的余额:" + (float)result + "元");
|
||||
} else { // 当取款金额超出余额时
|
||||
System.out.println("您账号上的余额不足!");
|
||||
}
|
||||
}
|
||||
catch (InputMismatchException e) { // catch块
|
||||
System.out.println("发生数字格式转换异常:输入的“取款金额”不是整数!");
|
||||
} finally {
|
||||
sc.close(); // 关闭控制台输入
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
#### 练习4
|
||||
新买了一台电脑,这台电脑与其他的电脑不一样,无法正常启动开机(电脑品牌未声明)。使用继承来体现这个事件,并尝试利用"电脑品牌"引出空指针异常。
|
||||
```java
|
||||
|
||||
class Computer { // 创建一个Computer类
|
||||
public void powerUp() { // 创建一个普通的方法powerUp()
|
||||
System.out.println("电脑正常开机启动"); // 控制台输出
|
||||
}
|
||||
}
|
||||
|
||||
class NewComputer extends Computer { // 创建一个NewComputer类继承Computer类
|
||||
private String brand; // 定义“电脑品牌”
|
||||
|
||||
@Override
|
||||
public void powerUp() {// 重写父类Computer中的powerUp()方法
|
||||
System.out.println("刚买回来的新电脑不能正常开机启动\n新电脑的品牌是:" + brand); // 控制台输出
|
||||
}
|
||||
}
|
||||
|
||||
public class PowerOn {// 创建一个Test类
|
||||
public static void main(String[] args) {
|
||||
System.out.println("模拟场景:用户新买了台电脑,这台电脑与其他的电脑不一样,无法正常启动开机 \n 经检测,是由于电脑的品牌不确定造成的……\n");
|
||||
try { // try块
|
||||
NewComputer newComputer = new NewComputer(); // 创建对象newComputer
|
||||
newComputer.powerUp(); // 对象newComputer调用powerUp()方法
|
||||
} catch (NullPointerException npe) { // catch块
|
||||
System.out.println("引起空指针异常:" + npe.toString().substring(npe.toString().lastIndexOf('.') + 1)); // 控制台输出
|
||||
} finally { // finally块
|
||||
System.out.println("异常出现的原因:\n新机器newComputer对象中的品牌(brand)为null"); // 控制台输出
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
## 实例3: 规定西红柿单价不得超过7元
|
||||
|
@ -187,9 +315,109 @@ public class Tomato {// 创建西红柿类
|
|||
|
||||
#### 练习5
|
||||
模拟老师上课前的点名过程,并将旷课的学生作为异常抛出∶张三、李四、王五(老师在点名册上记下了“王五旷课”)。
|
||||
```java
|
||||
|
||||
class Person { // 创建一个Person类
|
||||
private String job; // 定义“职称”
|
||||
|
||||
public String getJob() { // 获得“职称”
|
||||
return job;
|
||||
}
|
||||
|
||||
public void setJob(String job) { // 设置“职称”
|
||||
this.job = job;
|
||||
}
|
||||
|
||||
public void say(String words) { // 创建有参的方法say()
|
||||
System.out.println(job + ":" + words); // 输出结果
|
||||
}
|
||||
}
|
||||
|
||||
public class CallTheRoll { // 创建一个CallTheRoll类
|
||||
public static void main(String[] args) {
|
||||
try { // try块
|
||||
Person person1 = new Person(); // 创建对象person1
|
||||
person1.setJob("老师"); // 设置对象person1的“职称”
|
||||
person1.say("同学们早上好!现在我们开始点名..."); // 设置对象person1说话的内容
|
||||
|
||||
Person person2 = new Person(); // 创建对象person2
|
||||
person2.setJob("班长"); // 设置对象person2的“职称”
|
||||
person2.say("大家保持安静!准备上课..."); // 设置对象person2说话的内容
|
||||
|
||||
person1.say("张三!"); // 设置对象person1说话的内容
|
||||
|
||||
Person person3 = new Person(); // 创建对象person3
|
||||
person3.setJob("同学张三"); // 设置对象person3的“职称”
|
||||
person3.say("到!"); // 设置对象person3说话的内容
|
||||
|
||||
person1.say("李四!"); // 设置对象person1说话的内容
|
||||
|
||||
Person person4 = new Person(); // 创建对象person4
|
||||
person4.setJob("同学李四"); // 设置对象person4的“职称”
|
||||
person4.say("Here!"); // 设置对象person4说话的内容
|
||||
|
||||
person1.say("下次说中文。下一个!\n 王五!"); // 设置对象person1说话的内容
|
||||
|
||||
Person person5 = new Person(); // 创建对象person5
|
||||
person5.setJob("同学王五"); // 设置对象person5的“职称”
|
||||
person5.say("...."); // 设置对象person5说话的内容
|
||||
|
||||
person1.say("王五!"); // 设置对象person1说话的内容
|
||||
|
||||
person5.say("...."); // 设置对象person5说话的内容
|
||||
|
||||
throw new Exception("抛出异常:老师在点名册上记下了“王五旷课”!!!"); // 抛出异常
|
||||
} catch (Exception e) { // catch块
|
||||
System.out.println(e.getMessage()); // 输出异常的信息
|
||||
} finally {
|
||||
System.out.println("老师:今天点名到此结束。现在开始上课!"); // 控制台输出
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
#### 练习6
|
||||
超市经常会对定价较市场价低的产品实施限购∶ 超市里的鲜鸡蛋每500 克 3.98 元,每人限购1500克。现将超过1500克的作为异常抛出,而对于满足条件的,计算出应付款。
|
||||
```java
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
class OverloadException extends Exception {// 自定义一个异常类OverloadException继承Exception类
|
||||
public OverloadException(double weight) {// 构造有参的方法
|
||||
// 出现异常时控制台输出的信息
|
||||
System.out.println("异常提示:这份鲜鸡蛋的重量为" + weight + "斤,超过3斤了,超重了!!!");
|
||||
}
|
||||
}
|
||||
|
||||
public class BuyEggs {// 创建一个BuyEggs类
|
||||
public static void pay(double weight) throws OverloadException {// 创建一个静态的、有参的pay(double
|
||||
if (weight > 3.0) {// 如果鸡蛋的重量超过三斤
|
||||
throw new OverloadException(weight); // 抛出异常
|
||||
}
|
||||
float money = (float) (weight * 3.98); // 如果鸡蛋的重量没有超过三斤,计算“应付款”
|
||||
System.out.println("应付款:" + money + "元"); // 输出“应付款”
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.print("请输入鲜鸡蛋的重量(斤):");
|
||||
Scanner sc = new Scanner(System.in); // 控制台输入
|
||||
double weight = sc.nextDouble(); // 声明一个double类型的变量weight接收控制台输入的值
|
||||
try {// try块
|
||||
pay(weight); // 调用pay()方法,并传递参数weight
|
||||
} catch (OverloadException ole) {// catch块
|
||||
/*
|
||||
* 注意: 这个方法体之所以为“空”是因为在自定义异常的类OverloadException中, 我们通过构造的有参方法public
|
||||
* OverloadException(double weight),已将出现异常时的信息在控制台上输出了;
|
||||
* 所以,此处就不必再写“System.out.println(ole);”这条控制台输出语句。
|
||||
*/
|
||||
} finally {// finally块
|
||||
sc.close(); // 关闭控制台输入
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
##### 知识补充:
|
||||
|
|
215
Java/练习题:控制流程.md
215
Java/练习题:控制流程.md
|
@ -23,7 +23,54 @@ public class Restaurant {
|
|||
```
|
||||
|
||||
#### 练习1:将一、二年级学生的学生成绩划分等级,等级划分标准如下∶①"优秀",大于等于 90分;②"良好",大于等于 80 分,小于 90分;③"合格",大于等于 60分,小于80分;④"不合格",小于 60 分。使用 if…else if语句实现根据控制台输入的成绩,输出与该成绩对应等级的功能。
|
||||
```java
|
||||
import java.util.Scanner;
|
||||
|
||||
public class ScoreLevel {
|
||||
public static void main(String[] args) {
|
||||
Scanner sc = new Scanner(System.in);
|
||||
System.out.print("请输入您的分数:");
|
||||
double score = sc.nextDouble();
|
||||
if (score >= 90) {
|
||||
System.out.println("您的分数" + score + "对应的等级为“优秀”");
|
||||
} else if (score >= 80) {
|
||||
System.out.println("您的分数" + score + "对应的等级为“良好”");
|
||||
} else if (score >= 60) {
|
||||
System.out.println("您的分数" + score + "对应的等级为“合格”");
|
||||
} else if (score < 60) {
|
||||
System.out.println("您的分数" + score + "对应的等级为“不合格”");
|
||||
}
|
||||
sc.close();
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
#### 练习2:BMI 身体质量指数的等级划分标准如下∶①"偏轻",BMI 小于18.5;②"正常",BMI大于等于 18.5,小于25;③"偏重",BMI 大于等于25,小于30;④"肥胖",BMI大于等于30。根据控制台输入的身高( 单位∶ 来)、体重(单位∶ 千克),输出 BMI指数以及与该指数对应的等级。
|
||||
```java
|
||||
import java.util.Scanner;
|
||||
|
||||
public class BMIexponent {
|
||||
public static void main(String[] args) {
|
||||
Scanner sc = new Scanner(System.in);
|
||||
System.out.print("请输入您的身高(单位:米):");
|
||||
double height = sc.nextDouble();
|
||||
System.out.print("请输入您的体重(单位:公斤):");
|
||||
double weight = sc.nextDouble();
|
||||
double exponent = weight/(height * height);
|
||||
if (exponent < 18.5) {
|
||||
System.out.println("您的身体质量指数(BMI)为" + exponent + ",偏轻。");
|
||||
} else if (exponent < 25) {
|
||||
System.out.println("您的身体质量指数(BMI)为" + exponent + ",正常。");
|
||||
} else if (exponent < 30) {
|
||||
System.out.println("您的身体质量指数(BMI)为" + exponent + ",偏重。");
|
||||
} else if (exponent >= 30) {
|
||||
System.out.println("您的身体质量指数(BMI)为" + exponent + ",肥胖。");
|
||||
}
|
||||
sc.close();
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
## 实例2: 用 switch 多分支语句判断成绩等级
|
||||
创建 Grade类,使用 Scanner 类在控制台输入成绩,然后用 switch 多分支语句判断输入的分数属于哪个等级。10分和9分属于优,8分属于良,7分和6分属于中,5分、4分、3分、2分、1分以及 0 分均为差,实例代码如下∶
|
||||
|
@ -66,7 +113,77 @@ public class Grade {
|
|||
```
|
||||
|
||||
#### 练习3:使用 switch多分支语句判断控制台输入的某个月份属于哪个季节。
|
||||
```java
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Seasons {
|
||||
public static void main(String[] args) {
|
||||
Scanner sc = new Scanner(System.in);
|
||||
System.out.print("请输入某个月份(1~12):");
|
||||
int month = sc.nextInt();
|
||||
if (month < 1 || month > 12) {
|
||||
System.out.println("警告:您在非法操作……");
|
||||
} else {
|
||||
switch (month) {
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
System.out.println(month + "月正值春季");
|
||||
break;
|
||||
case 6:
|
||||
case 7:
|
||||
case 8:
|
||||
System.out.println(month + "月正值夏季");
|
||||
break;
|
||||
case 9:
|
||||
case 10:
|
||||
case 11:
|
||||
System.out.println(month + "月正值秋季");
|
||||
break;
|
||||
case 12:
|
||||
case 1:
|
||||
case 2:
|
||||
System.out.println(month + "月正值冬季");
|
||||
break;
|
||||
}
|
||||
}
|
||||
sc.close();
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
#### 练习4:使用 switch多分支语句判断控制台输入的某个月份属于哪个季节。(光盘\Code\Try\O3\05)(2)某大型商超为答谢新老顾客,当累计消费金额达到一定数额时,顾客可享受不同的折扣∶①尚未超过 200 元,顾客须按照小票价格支付全款;不少于 200元但尚未超过 600元,顾客全部的消费金额可享 8.5 折优惠;③不少于 600 元但尚未超过 1000 元,顾客全部的消费金额可享 7折优惠;④不少于 1000 元,顾客全部的消费金额可享 6折优惠;
根据顾客购物小票上的消费金额,在控制台上输出该顾客将享受的折扣与打折后需支付的金额。
|
||||
```java
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Discount {
|
||||
public static void main(String[] args) {
|
||||
Scanner sc = new Scanner(System.in);
|
||||
System.out.print("请输入您的消费金额:");
|
||||
int money = sc.nextInt();
|
||||
switch (money / 200) {
|
||||
case 0:
|
||||
System.out.println("您已消费:" + money + "元,尚未超过200元,须按照小票价格支付全款,即" + money + "元RMB");
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
System.out.println("您已消费:" + money + "元,不少于200元但尚未超过600元,全部的消费金额可享8.5折优惠,即" + (money * 0.85) + "元RMB");
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
System.out.println("您已消费:" + money + "元,不少于600元但尚未超过1000元,全部的消费金额可享7折优惠,即" + (money * 0.7) + "元RMB");
|
||||
break;
|
||||
default:
|
||||
System.out.println("您已消费:" + money + "元,不少于1000元,全部的消费金额可享6折优惠,即" + (money * 0.6) + "元RMB");
|
||||
break;
|
||||
}
|
||||
sc.close();
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
## 实例3:使用 for 循环完成 1~ 100的相加运算
|
||||
|
@ -86,7 +203,54 @@ public class AdditiveFor {
|
|||
$思考:可不可以改写用while实现相加运算呢?$
|
||||
|
||||
#### 练习5:有一组数∶ 1、1、2、3、5、8、13、21、34…,请用for循环算出这组数的第n个数是多少?
|
||||
```java
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Arithmetic {
|
||||
public static void main(String[] args) {
|
||||
int num1 = 1, num2 = 1, temp;//定义3个变量,num1用来记录
|
||||
Scanner sc = new Scanner(System.in);// 创建扫描器对象,用于输入
|
||||
System.out.print("请输入要查看第n个数中的n值:");
|
||||
int num = sc.nextInt();// 记录用户输入的数字
|
||||
for (int i = 2; i < num; i++) {
|
||||
num1 += num2;//后一个数字是前两个数字之和
|
||||
//交换num1和num2的值
|
||||
temp = num1;
|
||||
num1 = num2;
|
||||
num2 = temp;
|
||||
}
|
||||
System.out.println("第" + num + "个数为" + num2);//输出指定位数上的数据
|
||||
sc.close();
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
#### 练习6:一个球从80米高度自由落下,每次落地后反弹的高度为原高度的一半,第6次落地时共经过多少米?第6次反弹多高?
|
||||
```java
|
||||
|
||||
public class Fall {// 创建一个Fall类
|
||||
public static void main(String[] args) {
|
||||
double high = 80;// 声明double类型变量high
|
||||
double sum = 0;// 声明double类型变量sum
|
||||
// i = 0代表小球第一次落地时,i = 10代表第六次落地时
|
||||
for (int i = 0; i < 11; i++) {
|
||||
// 小球开始下落到第六次落地时经过的总路程
|
||||
sum += high;
|
||||
// 判断小球是否完成了一次完整地落地、反弹过程
|
||||
if (i % 2 == 0) {
|
||||
// 每次落地之后反弹高度为原来的一半
|
||||
high = high / 2;
|
||||
}
|
||||
}
|
||||
// 控制台输出小球第六次落地时经过的总路程
|
||||
System.out.println("第六次落地时共经过" + sum + "米");
|
||||
// 控制台输出小球第六次落地后反弹的高度
|
||||
System.out.println("第六次落地后反弹:" + high + "米");
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
## 实例4:使用嵌套的 for 循环输出乘法口诀表
|
||||
|
@ -108,8 +272,56 @@ public class Multiplication {
|
|||
|
||||
|
||||
#### 练习7:5文钱可以买一只公鸡,3 文钱可以买一只母鸡,1文钱可以买三只雏鸡,现在用 100文钱买 100 只鸡,那么公鸡、母鸡、雏鸡各有多少只?
|
||||
#### 练习8:根据用户控制输入 * 的行数,在控制台中输出相应行数的等腰三角形。
|
||||
```java
|
||||
|
||||
public class BuyChicken {// 百钱买百鸡
|
||||
public static void main(String[] args) {
|
||||
int cock, hen, chick;// 公鸡、母鸡、小鸡
|
||||
for (cock = 0; cock <= 20; cock++) {// 最多买20只公鸡
|
||||
for (hen = 0; hen <= 33; hen++) {// 最多买33只母鸡
|
||||
for (chick = 3; chick <= 99; chick += 3) {// 最多买99只小鸡(有“百鸡”的限制)
|
||||
if (5 * cock + 3 * hen + chick / 3 == 100)// 百钱
|
||||
{
|
||||
if (cock + hen + chick == 100)// 百鸡
|
||||
{
|
||||
System.out.println("公鸡:" + cock + "\t母鸡:" + hen + "\t小鸡:" + chick);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
#### 练习8:根据用户控制输入 * 的行数,在控制台中输出相应行数的等腰三角形。
|
||||
```java
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
public class OutputTriangle {
|
||||
public static void main(String[] args) {
|
||||
Scanner sc = new Scanner(System.in);
|
||||
System.out.print("等腰三角形由多行“*”号组成,请输入“*”的行数:");
|
||||
int line = sc.nextInt();
|
||||
if (line <= 1) {
|
||||
System.out.println("须输入大于1的自然数!");
|
||||
} else {
|
||||
for (int i = 1; i <= line; i++) {// 控制“*”的行数
|
||||
for (int j = 1; j <= line - i; j++) {// 每行添加空格的个数
|
||||
System.out.print(" ");
|
||||
}
|
||||
for (int j = 1; j <= 2 * i - 1; j++) {// 在空格后添加“*”
|
||||
System.out.print("*");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
sc.close();
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
## 实例5:找出1 ~ 19 之间所有的偶数
|
||||
使用一个for循环输出1~19之间所有的值,如果输出的值是奇数,则使用 continue 语句跳过本次循环,实例代码如下∶
|
||||
|
@ -126,4 +338,3 @@ public class ContinueTest {
|
|||
}
|
||||
```
|
||||
|
||||
#### 练习:找出1-1000数字种的素数和水花仙数。
|
||||
|
|
|
@ -34,6 +34,65 @@ public class ExplicitConversion {
|
|||
}
|
||||
```
|
||||
#### 练习1:使用 char型声明'a'~'g',然后输出它们相加后的结果。
|
||||
```java
|
||||
public class PlusChar {
|
||||
public static void main(String[] args) {
|
||||
char a = 'a';
|
||||
char b = 'b';
|
||||
char c = 'c';
|
||||
char d = 'd';
|
||||
char e = 'e';
|
||||
char f = 'f';
|
||||
char g = 'g';
|
||||
System.out.println("’a’~’g’相加后的结果:" + (a + b + c + d + e + f + g));
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
#### 练习2:IP地址每段数字的最大值可以由byte型的最大值与 short型128相加后得到,使用隐式转换控制台输出 IP 地址每段数字的最大值。
|
||||
|
||||
```java
|
||||
public class MaxIP {
|
||||
public static void main(String[] args) {
|
||||
byte maxvalue = 127;
|
||||
short s = 128;
|
||||
System.out.println("IP中的每段数字的最大值 = " + (maxvalue + s));
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 练习3:将 65~71显式转换为 char 型并输出。
|
||||
#### 练习4:一辆货车运输箱子,载货区宽2米,长 4米,一个箱子宽 1.5 米,长 1.5米,请问载货区一层可以放多少个箱子?
|
||||
```java
|
||||
public class IntToChar {
|
||||
public static void main(String[] args) {
|
||||
int i_a = 65;
|
||||
int i_b = 66;
|
||||
int i_c = 67;
|
||||
int i_d = 68;
|
||||
int i_e = 69;
|
||||
int i_f = 70;
|
||||
int i_g = 71;
|
||||
System.out.println("65转换为char型的结果为" + (char)i_a);
|
||||
System.out.println("66转换为char型的结果为" + (char)i_b);
|
||||
System.out.println("67转换为char型的结果为" + (char)i_c);
|
||||
System.out.println("68转换为char型的结果为" + (char)i_d);
|
||||
System.out.println("69转换为char型的结果为" + (char)i_e);
|
||||
System.out.println("70转换为char型的结果为" + (char)i_f);
|
||||
System.out.println("71转换为char型的结果为" + (char)i_g);
|
||||
}
|
||||
}
|
||||
```
|
||||
#### 练习4:一辆货车运输箱子,载货区宽2米,长 4米,一个箱子宽 1.5 米,长 1.5米,请问载货区一层可以放多少个箱子?
|
||||
```java
|
||||
public class GoodsVan {
|
||||
public static void main(String[] args) {
|
||||
int vanWidth = 2;
|
||||
int vanLength = 4;
|
||||
double boxWidth = 1.5;
|
||||
double boxLength = 1.5;
|
||||
int boxNumber = (int)(vanWidth/boxWidth) * (int)(vanLength/boxLength);
|
||||
System.out.println("载货区一层可以放" + boxNumber + "箱子!");
|
||||
}
|
||||
}
|
||||
|
||||
```
|
130
Java/练习题:数组.md
130
Java/练习题:数组.md
|
@ -1,4 +1,132 @@
|
|||
#### 练习1:遍历二维数组int a[][] = {{23.65,43,68},{45,99,86,80},{76,81,34,45},{88,64,48,25}}后,再通过循环计算该二维数组的两条对角线之和。
|
||||
```java
|
||||
public class GetSum {// 创建GetSum类
|
||||
public static void main(String args[]) {
|
||||
// 初始化int类型的二维数组
|
||||
int a[][] = {{ 23, 65, 43, 68 },
|
||||
{ 45, 99, 86, 80 },
|
||||
{ 76, 81, 34, 45 },
|
||||
{ 88, 64, 48, 25 }};
|
||||
System.out.println("原始数组如下:");// 控制台输出提示信息
|
||||
for (int i = 0; i < a.length; i++) {// 遍历二维数组
|
||||
for (int j = 0; j < a[i].length; j++) {
|
||||
System.out.print(a[i][j] + " ");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
int sum1 = 0;// 声明int类型的变量sum1(求一条对角线的和)
|
||||
int sum2 = 0;// 声明int类型的变量sum2(求另一条对角线的和)
|
||||
// 通过循环,获得元素的下标,并分别求出两条对角线的和
|
||||
for (int i = 0, j = a[i].length - 1; i < a.length; i++, j--) {
|
||||
sum1 += a[i][i];
|
||||
sum2 += a[i][j];
|
||||
}
|
||||
// 把两条对角线的和相加求和并输出
|
||||
System.out.println("对角线总和为:" + (sum1 + sum2));
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
#### 练习2:一个3×3的网格,将从1到9的数字放入方格,达到能够使得每行每列以及每个对角线的值相加都相同。
|
||||
```java
|
||||
|
||||
public class NineGrids {// 创建NineGrids类
|
||||
public static void main(String[] args) {
|
||||
// 声明int类型的数组并分配内存(三阶方阵)
|
||||
int arr[][] = new int[3][3];
|
||||
// 确定数字“1”的位置
|
||||
int a = 2;// 第3行的下标
|
||||
int b = 3 / 2;// 第2列的下标
|
||||
for (int i = 1; i <= 9; i++) {// 给数组赋值
|
||||
arr[a++][b++] = i;// 避免数组下标越界
|
||||
if (i % 3 == 0) {// 如果i是3的倍数
|
||||
a = a - 2;
|
||||
b = b - 1;
|
||||
} else {// 如果i不是3的倍数
|
||||
a = a % 3;
|
||||
b = b % 3;
|
||||
}
|
||||
}
|
||||
System.out.println("九宫格:");
|
||||
// 遍历数组
|
||||
for (int i = 0; i < 3; i++) {
|
||||
for (int j = 0; j < arr.length; j++) {
|
||||
System.out.print(arr[i][j] + " ");// 输出数组中的数据
|
||||
}
|
||||
System.out.println();// 换行
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
#### 练习3:交换二维数组 int array[][] = {{8,75,23},{21,534},{15,23,20 }};的行、列数据。
|
||||
#### 练习4:使用二维数组实现杨辉三角算法。
|
||||
```java
|
||||
|
||||
public class SwapRC {// 交换二维数组的行列数据
|
||||
public static void main(String[] args) {
|
||||
int i, j;// 定义两个变量,分别用来作为行和列的循环变量
|
||||
// 初始化一个静态的int型二维数组
|
||||
int[][] array = { { 8, 75, 23 }, { 21, 55, 34 }, { 15, 23, 20 } };
|
||||
System.out.println("—————原始数组—————");// 提示信息
|
||||
// 遍历原始的二维数组
|
||||
for (i = 0; i < 3; i++) {
|
||||
for (j = 0; j < 3; j++) {
|
||||
System.out.print(array[i][j] + "\t");// 输出原始数组中的元素
|
||||
}
|
||||
System.out.println();// 换行
|
||||
}
|
||||
int temp;// 临时变量
|
||||
// 通过循环调换元素的位置
|
||||
for (i = 0; i < 3; i++) {
|
||||
for (j = 0; j < i; j++) {
|
||||
temp = array[i][j];// 把数组元素赋给临时变量
|
||||
// 交换行列数据
|
||||
array[i][j] = array[j][i];
|
||||
array[j][i] = temp;
|
||||
}
|
||||
}
|
||||
System.out.println("——调换位置之后的数组——");// 提示信息
|
||||
// 遍历调换位置之后的二维数组
|
||||
for (i = 0; i < 3; i++) {
|
||||
for (j = 0; j < 3; j++) {
|
||||
System.out.print(array[i][j] + "\t");// 输出调换位置后的数组元素
|
||||
}
|
||||
System.out.println();// 换行
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
#### 练习4:使用二维数组实现杨辉三角算法。
|
||||
```java
|
||||
|
||||
public class YangHui {// 杨辉三角算法的实现
|
||||
public static void main(String[] args) {
|
||||
// 定义一个长度为10的二维数组
|
||||
int[][] Array_int = new int[10][];
|
||||
// 向数组中记录杨辉三角形的值
|
||||
for (int i = 0; i < Array_int.length; i++) {// 遍历行数
|
||||
Array_int[i] = new int[i + 1];// 定义二维数组的列数
|
||||
// 遍历二维数组的列数
|
||||
for (int j = 0; j < Array_int[i].length; j++) {
|
||||
if (i <= 1) {// 如果是数组的前两行
|
||||
Array_int[i][j] = 1;// 将其设置为1
|
||||
continue;
|
||||
} else {
|
||||
// 如果是行首或行尾
|
||||
if (j == 0 | j == Array_int[i].length - 1)
|
||||
Array_int[i][j] = 1;// 将其设置为1
|
||||
else// 根据杨辉算法进行计算
|
||||
Array_int[i][j] = Array_int[i - 1][j - 1] + Array_int[i - 1][j];
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < Array_int.length; i++) {// 输出杨辉三角
|
||||
for (int j = 0; j < Array_int[i].length; j++)
|
||||
System.out.print(Array_int[i][j] + "\t");
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
```
|
127
Java/练习题:类与方法.md
127
Java/练习题:类与方法.md
|
@ -31,14 +31,139 @@ public class EggCake { // 创建鸡蛋灌饼EggCake类
|
|||
定义了两个构造方法,在无参构造方法中可以使用this关键字调用有参的构造方法。但是要注意,this()语句之前不可以有其他代码。
|
||||
|
||||
#### 练习1:设计加油站类和汽车类,加油站提供一个给车加油的方法,参数为剩余汽油数量。每次执行加油方法,汽车的剩余汽油数量都会加 2。
|
||||
```java
|
||||
|
||||
class GasStation {
|
||||
public int addOil(int oilVolume) {
|
||||
oilVolume += 2;
|
||||
return oilVolume;
|
||||
}
|
||||
}
|
||||
|
||||
public class AutoMobile {
|
||||
public static void main(String[] args) {
|
||||
int leftOilVolume = 10;
|
||||
GasStation gs = new GasStation();
|
||||
for (int i = 1; i <= 5; i++) {
|
||||
leftOilVolume = gs.addOil(leftOilVolume);
|
||||
}
|
||||
System.out.println("该车现有油量:" + leftOilVolume + "L。");
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
#### 练习2:智能手机的默认语言为英文。,但制造手机时可以将默认语言设置为中文。编写手机类, 无,参构造方法使用默认语言设计,利用有参构造方法修改手机的默认语言。
|
||||
```java
|
||||
|
||||
public class Cellphone {
|
||||
|
||||
public Cellphone() {
|
||||
System.out.println("智能手机的默认语言为英文");
|
||||
}
|
||||
|
||||
public Cellphone(String defaultLanguage) {
|
||||
System.out.println("将智能手机的默认语言设置为" + defaultLanguage);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Cellphone cellphone1 = new Cellphone();
|
||||
Cellphone cellphone2 = new Cellphone("中文");
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
#### 练习3:张三去KFC买可乐,商家默认不加冰块。但是张三可以要求加 3 个冰块。请利用有参构造方法实现上述功能。
|
||||
```java
|
||||
|
||||
public class IceBlock {
|
||||
|
||||
public IceBlock() {
|
||||
System.out.println("商家默认可乐里没有冰块……");
|
||||
}
|
||||
|
||||
public IceBlock(String name, int number) {
|
||||
System.out.println(name + "要求向可乐里放入" + number + "个冰块。");
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
IceBlock block = new IceBlock();
|
||||
IceBlock iceBlock = new IceBlock("张三", 3);
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
#### 练习4:创建教师类,类中有姓名、性别和年龄三个属性,在构造方法中使用 this 关键字分别为这三个成员属性赋值。
|
||||
```java
|
||||
|
||||
public class Teacher {
|
||||
String name;
|
||||
char sex;
|
||||
int age;
|
||||
|
||||
public Teacher(String name, char sex, int age) {
|
||||
this.name = name;
|
||||
this.sex = sex;
|
||||
this.age = age;
|
||||
System.out.println("教师姓名:" + name + "\n教师性别:" + sex + "\n教师年龄:" + age);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Teacher chinese = new Teacher("张三", '男', 38);
|
||||
Teacher math = new Teacher("李四", '男', 45);
|
||||
Teacher english = new Teacher("王五", '女', 32);
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
#### 练习5:一只大熊猫,长 1.3 米,重 90千克。在自定义方法中使用this关键字调用类的成员变量并在控制台输出这只大熊猫的信息。
|
||||
```java
|
||||
|
||||
#### 练习6:创建信用卡类,有两个成员变量分别是卡号和密码,如果用户开户时没有设置初始密码,则使用"123456"作为默认密码。设计两个不同的构造方法,分别用于用户设置密码和用户未设置密码两种构造场景。
|
||||
public class Panda {
|
||||
private double length = 1.3;
|
||||
private double weight = 90.0;
|
||||
|
||||
public String getMessages() {
|
||||
return "熊猫体长" + this.length + "米,体重" + this.weight + "KG。";
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Panda panda = new Panda();
|
||||
System.out.println(panda.getMessages());
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
#### 练习6:创建信用卡类,有两个成员变量分别是卡号和密码,如果用户开户时没有设置初始密码,则使用"123456"作为默认密码。设计两个不同的构造方法,分别用于用户设置密码和用户未设置密码两种构造场景。
|
||||
```java
|
||||
|
||||
public class Credit {
|
||||
String cardNum;
|
||||
String password;
|
||||
|
||||
public Credit(String cardNum, String password) {
|
||||
this.cardNum = cardNum;
|
||||
this.password = password;
|
||||
if (password.equals("123456")) {
|
||||
System.out.println("信用卡" + cardNum + "的默认密码为" + password);
|
||||
} else {
|
||||
System.out.println("重置信用卡" + cardNum + "的密码为" + password);
|
||||
}
|
||||
}
|
||||
|
||||
public Credit(String cardNum) {
|
||||
this(cardNum, "123456");
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Credit initialCredit = new Credit("4013735633800642");
|
||||
Credit resetedCredit = new Credit("4013735633800642", "168779");
|
||||
}
|
||||
}
|
||||
|
||||
```
|
|
@ -26,6 +26,57 @@ public class Pad extends Computer { // 子类:平板电脑
|
|||
```
|
||||
|
||||
#### 练习1:创建银行卡类,并设计银行卡的两个子类∶ 储蓄卡与信用卡。
|
||||
```java
|
||||
public class BankCard {
|
||||
String cardNum;
|
||||
|
||||
public void saveMoney() {
|
||||
System.out.println("卡号为" + cardNum + "银行卡可以存钱。");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class CreditCard extends BankCard{
|
||||
public void drawMoney() {
|
||||
System.out.println("卡号为" + cardNum + "银行卡可以取钱。");
|
||||
}
|
||||
|
||||
public void borrowMoney() {
|
||||
System.out.println("卡号为" + cardNum + "银行卡可以借钱。");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class SavingCard extends BankCard{
|
||||
public void drawMoney() {
|
||||
System.out.println("卡号为" + cardNum + "银行卡可以取钱。");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class Test {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("--------------银行卡的特点--------------");
|
||||
BankCard bankCard = new BankCard();
|
||||
bankCard.cardNum = "6224 4569 2421 3677";
|
||||
bankCard.saveMoney();
|
||||
System.out.println("--------------储蓄卡的特点--------------");
|
||||
SavingCard savingCard = new SavingCard();
|
||||
savingCard.cardNum = "6212 2636 0001 2739";
|
||||
savingCard.saveMoney();
|
||||
savingCard.drawMoney();
|
||||
System.out.println("--------------信用卡的特点--------------");
|
||||
CreditCard creditCard = new CreditCard();
|
||||
creditCard.cardNum = "4013 7356 3380 0642";
|
||||
creditCard.saveMoney();
|
||||
creditCard.drawMoney();
|
||||
creditCard.borrowMoney();
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
## 实例2:让平板电脑调用台式机的功能
|
||||
|
@ -54,8 +105,52 @@ public class Pad3 extends Computer3 { // 子类:平板电脑
|
|||
|
||||
#### 练习3:
|
||||
设计火车类和高铁类,高铁类继承火车类,不管火车类的行进速度是多少,高铁的行进速度永远是火车的二倍。
|
||||
```java
|
||||
|
||||
class Train {
|
||||
public double getSpeed() {
|
||||
return 145.8;
|
||||
}
|
||||
}
|
||||
|
||||
public class HighSpeedRail extends Train {
|
||||
public double getSpeed() {
|
||||
return super.getSpeed() * 2;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Train train = new Train();
|
||||
System.out.println("火车的速度为" + train.getSpeed() + "公里/小时");
|
||||
HighSpeedRail highSpeedRail = new HighSpeedRail();
|
||||
System.out.println("高铁的速度为" + highSpeedRail.getSpeed() + "公里/小时");
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
#### 练习4:
|
||||
设计人类,有二个自我介绍的方法,输出"我是 XXX";设计博士类,继承人类,博士类自我介绍时输出"我是XXX 博士"。
|
||||
```java
|
||||
|
||||
class Person {
|
||||
public String introduce() {
|
||||
return "我是XXX";
|
||||
}
|
||||
}
|
||||
|
||||
public class Doctor extends Person {
|
||||
public String introduce() {
|
||||
return super.introduce() + "博士";
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Person person = new Person();
|
||||
System.out.println(person.introduce());
|
||||
Doctor doctor = new Doctor();
|
||||
System.out.println(doctor.introduce());
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
**扩展知识:**
|
||||
在开始学习使用class关键字定义类时,就应用到了继承原理,因为在Java中,所有的类都直接或间接继承了java.lang.Obiect类。Obiect类是比较特殊的类,它是所有类的父类,是Java类层中的最高层类。当创建一个类时,除非已经指定要从其他类继承,否则都是从java.lang.Object类继承而来的,所以Java中的每个类都源于java.lang.Object类,如 String、Integer等类都是继承于 Object类。除此之外,自定义的类也都继承于Object类。由于所有类都是Obiect子类,所以在定义类时,省略了extends Object语句。
|
||||
|
@ -117,8 +212,43 @@ public class OverLoadTest {
|
|||
|
||||
#### 练习5:
|
||||
使用方法的重载描述所有的超市都支持现金付款,但大型商超还支持刷卡付款。
|
||||
```java
|
||||
|
||||
public class Market {
|
||||
public static String pay(String payStyle) {
|
||||
return "所有的超市都支持" + payStyle;
|
||||
}
|
||||
|
||||
public static String pay(String marketStyle, String payStyle) {
|
||||
return marketStyle + "还支持" + payStyle;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(pay("现金付款"));
|
||||
System.out.println("但" + pay("大型商超", "刷卡付款"));
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
#### 练习6:
|
||||
使用方法的重载描述所有的汽车都至少有两块脚踏板,但手动挡汽车有三块脚踏板。
|
||||
```java
|
||||
|
||||
public class Car {
|
||||
public static Integer havePedalNum(int pedalNum) {
|
||||
return pedalNum;
|
||||
}
|
||||
|
||||
public static String havePedalNum(String name, int pedalNum) {
|
||||
return name + "有" + pedalNum;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("所有的汽车至少有" + havePedalNum(2) + "块脚踏板");
|
||||
System.out.println("但" + havePedalNum("手动挡汽车", 3) + "块脚踏板");
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
自增、自减运算符是单目运算符,可以放在变量之前,也可以放在变量之后。自增、自减运算符的作用是使变量的值加 1或减1。语法如下∶
|
||||
```java
|
||||
a++; // 先输出a的原值,后做+1运算
|
||||
++a; // 先做+1运算,再输出a计算之后的值
|
||||
a--; // 先输出a的原值,后做-1运算
|
||||
--a; // 先做-1运算,再输出a计算之后的值
|
||||
```
|
||||
|
||||
## 实例1:对同一个变量做自增、自减运算
|
||||
创建 AutolncrementDecreasing类,对一个整型变量先做自增运算,再做自减运算,实例代码如下:
|
||||
```java
|
||||
public class AutoIncrementDecreasing {
|
||||
public static void main(String[] args) {
|
||||
int a = 1; // 创建整型变量a,初始值为1
|
||||
System.out.println("a = " + a); // 输出此时a的值
|
||||
a++; // a自增1
|
||||
System.out.println("a++ = " + a); // 输出此时a的值
|
||||
a++; // a自增1
|
||||
System.out.println("a++ = " + a); // 输出此时a的值
|
||||
a++; // a自增1
|
||||
System.out.println("a++ = " + a); // 输出此时a的值
|
||||
a--; // a自减1
|
||||
System.out.println("a-- = " + a); // 输出此时a的值
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 练习1:使用赋值运算符输出银行的年利率 (2.95%)以及存款额 15000元后,计算并输出3年后的本金和利息的总和。
|
||||
```java
|
||||
public class CorpusAndInterest {
|
||||
public static void main(String[] args) {
|
||||
double interest = 0.0295;
|
||||
int corpus = 15000;
|
||||
double sum = corpus * (1 + interest) * (1 + interest) * (1 + interest);
|
||||
System.out.println("存款额15000元,3年后的本息和 = " + sum + "元RMB");
|
||||
}
|
||||
}
|
||||
```
|
||||
#### 练习2:规定 1美元=6.8995元人民币后,计算10000元人民币可兑换多少美元。
|
||||
```java
|
||||
public class RMBToDollar {
|
||||
public static void main(String[] args) {
|
||||
double dollarToRMB = 6.8995;
|
||||
int RMB = 10000;
|
||||
double dollar = RMB/dollarToRMB;
|
||||
System.out.println("10000元人民币可兑换" + dollar + "美元");
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 实例2:逻辑运算符结合关系运算符进行运算
|
||||
创建 LogicalAndRelational类,首先利用关系运算符计算出布尔结果,再用逻辑运算符做二次计算,实例代码如下∶
|
||||
```java
|
||||
|
||||
public class LogicalAndRelational {
|
||||
public static void main(String[] args) {
|
||||
int a = 2; // 声明int型变量a
|
||||
int b = 5; // 声明int型变量b
|
||||
// 声明boolean型变量,用于保存应用逻辑运算符“&&”后的返回值
|
||||
boolean result = ((a > b) && (a != b));
|
||||
// 声明boolean型变量,用于保存应用逻辑运算符“||”后的返回值
|
||||
boolean result2 = ((a > b) || (a != b));
|
||||
System.out.println(result); // 将变量result输出
|
||||
System.out.println(result2); // 将变量result2输出
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 练习3:有两名男性应聘者∶ 一位25岁,一位32 岁。该公司招聘信息中有一个要求,即男性应聘者的年龄在 23~30 岁之间,判断这两名应聘者是否满足这个要求。
|
||||
```java
|
||||
public class Interview {
|
||||
public static void main(String[] args) {
|
||||
int employeeAge_A = 25;
|
||||
int employeeAge_B = 32;
|
||||
System.out.println("25岁的应聘者是否满足这个要求:" + ((employeeAge_A >= 23) && (employeeAge_A <= 30)));
|
||||
System.out.println("32岁的应聘者是否满足这个要求:" + ((employeeAge_B >= 23) && (employeeAge_B <= 30)));
|
||||
}
|
||||
}
|
||||
```
|
||||
#### 练习4:我们在登录一个网站时,可以使用账户名登录,也可以使用手机号登录,还可以使用电子邮箱地址登录。请判断某用户是否可以登录。(已知服务器中有如下记录,账户名∶ 张三,手机号∶ 1234567890,电子邮箱∶zhangsan@163.com)
|
||||
```java
|
||||
public class Login {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("某用户是否可以登录此网站:" +
|
||||
(("张三" == "张三") || ("1234567890" == "1234567890") || ("zhangsan@163.com" == "zhangsan@163.com")));
|
||||
}
|
||||
}
|
||||
```
|
Loading…
Reference in New Issue