2021年1月1日
これは2021年の最初のJava学習記録であり、今後は週に6回更新されます。
今年は、私のJava学習の旅がスムーズで有益であり、良い仕事が見つかることを願っています。
1.三項式
练习:
1. 判断两个数是否相等
2. 有如下三个人的身高:165cm、183cm、135cm,通过三元表达式,求出三人中最高的一个人。
2、キーボード入力
前のプログラムのデータはプログラムに直接書き込まれるため、変更して使用するのは非常に不便です。したがって、Javaは公式にキーボード入力を提供し、プログラムを変更せずにキーボードから動的にデータを入力できるようにします。
クラスを使用する必要があります:スキャナー
Scannerクラスはjava.utilパッケージの下にあります
2.1ステップ
1. 创建对象
java.util.Scanner sc = new java.util.Scanner(System.in);
2. 接收数据
int a = sc.nextInt();
3. 处理数据
接收数据的常见方法:
nextInt() 接收整数
nextDouble() 接收小数
nextLine() 接收字符串
3、ガイドパッケージ
クラス内の別のパッケージの下にあるクラスを使用する場合は、このパッケージをクラスの先頭で固定形式で宣言してから、このクラス内の指定されたパッケージの下にあるクラスを直接使用できます。
3.1インポートパッケージのフォーマット
关键字:import
注意事项:
1. 导入的包一定要声明在所有类的最上方
2. java.lang包下类不需要导包就能使用
3. 导包格式如下:
1. import 包名.类名; 如:import java.util.Scanner;
2. import 包名.*; 如:java.util.*;
注意:建议选择具体到类名的。
3.2ガイドパッケージを使用して、キーボード入力手順を簡素化します
1. 导包
import java.util.Scanner;
2. 创建对象
Scanner sc = new Scanner(System.in);
3. 接收数据
int x = sc.nextInt();
4. 处理数据
//1. 导包
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
//2. 创建对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
//3. 接收数据
int x = sc.nextInt();
//4. 处理数据
System.out.println(x);
}
}
接收数据的常见方法:
nextInt() 接收整数
nextDouble() 接收小数
nextLine() 接收字符串
/*
判断两个数是否相等
*/
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int x = sc.nextInt();
System.out.println("请输入第二个整数:");
int y = sc.nextInt();
String s = x == y ? "相等" : "不相等";
System.out.println(s);
}
}
/*
求三个数的最大值
*/
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int x = sc.nextInt();
System.out.println("请输入第二个整数:");
int y = sc.nextInt();
System.out.println("请输入第三个整数:");
int z = sc.nextInt();
int temp = x > y ? x : y;
int max = temp > z ? temp : z;
System.out.println("最大值为:" + max);
}
}
4、フロー制御ステートメント
観察により、プログラムの実行順序が結果に直接影響することがわかります。別の実行シーケンスを使用して、必要な効果が得られる場合があります。
4.1フロー制御ステートメントの分類
顺序结构
分支结构
循环结构
5、シーケンス構造
Javaを含むすべての言語は、デフォルトで順次構造を持っています。つまり、プログラムは上から下に実行されます。
public class Demo {
public static void main(String[] args) {
int a = 3;
int b = 5;
System.out.println(a); //3
System.out.println(b); //5
System.out.println("over"); //over
}
}
6、分岐構造
プログラムをどこかで実行する場合、複数の方法で選択できます。これらの複数の方法を同時に実行することはできず、まったく実行されませんが、実行できるのは1つだけです。このような構造は分岐構造です。
6.1分類
if语句
switch语句
6.2ifステートメント
①if文の最初の形式
if(关系表达式){
语句体;
}
格式的解释:
1. 关系表达式的结果必须为boolean类型,要么是true、要么是false
2. 如果结果为true,那么执行大括号中的语句体
3. 如果结果为false,那么不执行大括号中的语句体,而是执行if语句下方的内容
public class IfDemo {
public static void main(String[] args) {
int a = 5;
if(a == 3){
System.out.println("进入了if语句中");
}
System.out.println("over");
}
}
练习:
键盘录入一个数,并判断这个数是整数还是小数(根据题意的规则为:先输入一个小数,如果小数点后有非0数字那么就认为是小数,如果小数点只有0那么就认为是整数)
如: 12.35 小数 12.0 整数
/*
键盘录入一个数,并判断这个数是整数还是小数(根据题意的规则为:先输入一个小数,如果小数点后有非0数字那么就认为是小数,如果小数点只有0那么就认为是整数)
如: 12.35 小数 12.0 整数
*/
import java.util.Scanner;
public class IfTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请录入一个数:");
//原来的数
double d = sc.nextDouble();
//经过强制数据类型转换之后的数
int dd = (int)d;
//用原来的数减去强制转换之后的数
double result = d - dd;
//如果结果等于0那就证明是整数,如果结果不等于0那就证明是小数
if(result == 0) {
System.out.println(d + "是整数");
}
if(result != 0) {
System.out.println(d + "是小数");
}
}
}
②If文の2番目の形式
if(关系表达式){
语句体1;
}else{
语句体2;
}
格式的解释:
1. 关系表达式的结果必须为boolean类型,要么是true、要么是false
2. 如果结果是true,那么执行语句体1
3. 如果结果是false,那么执行语句体2
public class IfDemo2 {
public static void main(String[] args) {
int a = 3;
/*
三元表达式可以和if语句的第二种格式互相转换
注意事项:
1. 三元表达式可以完成的,if语句都可以完成
2. 三元表达式不能完成的,if语句也可以完成
*/
//System.out.println(a == 3 ? "a等于3" : "a不等于3");
if(a == 3){
System.out.println("a等于3");
}else{
System.out.println("a不等于3");
}
System.out.println("over");
}
}
练习:使用if语句改进之前练习
1. 判断两个数是否相等
2. 求三个数的最大值
3. 判断一个数是奇数还是偶数
/*
需求1. 判断两个数是否相等
*/
import java.util.Scanner;
public class IfTest2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int x = sc.nextInt();
System.out.println("请输入第二个整数:");
int y = sc.nextInt();
/*
if(x == y){
System.out.println("相等");
}else{
System.out.println("不相等");
}
*/
}
}
/*
需求2. 求三个数的最大值
*/
import java.util.Scanner;
public class IfTest3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int x = sc.nextInt();
System.out.println("请输入第二个整数:");
int y = sc.nextInt();
System.out.println("请输入第三个整数:");
int z = sc.nextInt();
//定义一个变量,用来接收最大值
int max = 0;
if(x > y){
/*
x大于y才会进入到这里(也就是说只有x才有资格和z比较)
我们只需要让x和z进行比较求出最大值即可
*/
if(x > z){
max = x;
}else{
max = z;
}
}else{
/*
y大于x才会进入到这里(也就是说只有y才有资格和z比较)
我们只需要让y和z进行比较求出最大值即可
*/
if(y > z){
max = y;
} else{
max = z;
}
}
//打印最大值
System.out.println("最大值为:" + max);
}
}
/*
需求3. 判断一个数是奇数还是偶数
*/
import java.util.Scanner;
public class IfTest4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int x = sc.nextInt();
if(x % 2 == 0){
System.out.println(x + "是偶数");
}else{
System.out.println(x + "是奇数");
}
}
}
③If文の3番目の形式
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}else if(关系表达式3){
语句体3;
}
...
else{
语句体n;
}
格式的解释:
1. 关系表达式的结果必须为boolean类型,要么是true,要么是false
2. 如果关系表达式1的结果为true,那么执行语句体1
3. 如果关系表达式1的结果为false,那么会看关系表达式2的结果是true还是false
4. 如果关系表达式2的结果为true,那么执行语句体2
5. 如果关系表达式2的结果为false,那么会看关系表达式3的结果是true还是false
...
如果都为false,那么会执行else中的内容
注意事项:
1. else可以省略
2. else只能放在最后
成绩等级分类:
0 - 59 不及格
60- 69 中等
70- 89 良好
90-100 优秀
/*
需求:
成绩等级分类:
0 - 59 不及格
60- 69 中等
70- 89 良好
90-100 优秀
*/
import java.util.Scanner;
public class IfTest5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请录入您的成绩:");
int score = sc.nextInt();
if(score >= 0 && score < 60){
System.out.println("不及格");
}else if(score >= 60 && score < 70){
System.out.println("中等");
}else if(score >= 70 && score < 90){
System.out.println("良好");
}else if(score >= 90 && score <= 100){
System.out.println("优秀");
}else{
System.out.println("您录入的数据非法,请重新录入!");
}
}
}
6.3switchステートメント
①フォーマットと説明
switch (表达式) {
case 值1 :
语句体1;
break;
case 值2 :
语句体2;
break;
case 值3 :
语句体3;
break;
...
default :
语句体n;
break;
}
格式的解释:
1. switch 是一个关键字,切换的意思。表示了这是一个switch语句
2. case 是一个关键字,情况的意思。会比对表达式中的值是否和自己后面的值相同
如果相同的话,那么就执行自身下方的语句体
3. break 是一个关键字,破坏、打断的意思。用来退出switch语句
4. default 是一个关键字,默认的意思。如果所有的情况都不匹配,那么会执行default下面的内容
②switchステートメントに関する注意事項
1. 表达式的值可以是:
byte、short、int、char
jdk5之后:枚举
jdk7之后:字符串String
2. case后面的值只能是常量
3. break可以省略吗?可以省略,但是会发生穿透现象。
4. default可以省略吗?可以省略。
5. default一定要放在最后吗?可以放在其它位置,但是建议放在最后。
练习:
用switch语句完成 春夏秋冬的判断
12 1 2 冬季
3 4 5 春季
6 7 8 夏季
9 10 11 秋季
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int month = scan.nextInt();
switch(month) {
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default :
System.out.println("输入错误!!!");
}
}
}