文章目录
复习
AJCG 阿里巴巴 Java 开发规范
码出规范,码出高效
针对于标识符命名规范
标识符是 程序员在自行开发过程中,可以使用的自定义名称,主要用于 变量名,方法名,类名,接口名....
1. 标识符有且只能使用英文字母(A - Z, a - z),数字(0 - 9),唯一可以使用的标点符号 下划线( _ )
2. 标识符要求英文字母开头
3. Java 标识符严格区分大小写
4. 标识符没有严格的长度限制,但是会根据实际业务开发需求限制标识符长度
5. 标识符要求见名知意,动宾结合
studenName studentAge year socre age salary
detStudentName setStudentAge
6. 标识符要求符合驼峰命名法和下划线命名法
驼峰命名法:
小驼峰
要求 第一个单词字母小写,之后的每一个单词首字母大写
使用场景 变量名 方法名
studentName studentAge getstudentName setstudentAge
大驼峰
要求 每一个单词首字母大写
适用场景 类名 接口名
FirstJava ArrayIndexOutofBoundsException
下划线
要求所有英文字母全部大写,不同的字母之间使用下划线分割 _
7. 标识符不能使用 Java 已经占用的关键字和保留字,变颜色的无法使用
8. 标识符在一定范围以内唯一
运算符:
算术运算符
+ - * / % = ()
增强版:
+= -= *= /= %=
自增自减运算符
++
--
变量之前,先自增/自减,后提供数据
变量之后 ,先提供数据,后自增/自减
【使用建议】
1. 自增自减运算符单独成行,互不干扰
2. 使用 += 1 or -= 1 替换自增自减运算符
关系运算符:
> < >= <= != ==(这是个判断)
对外结果为 boolean类型结果
逻辑运算符:
&&
同真为真,有假【既】假
||
有真【既】真,同假为假
!
取反
逻辑与短路原则
如果出现一个 false条件,整个逻辑与表达式结果已经明确为 false,计算机不得执行从 false 之后的表达式
逻辑或短路原则
如果出现一个 true,整个逻辑与表达式结果已经明确为 true,计算机不得执行从 true 之后的表达式
分支结构和循环结构
1. 分支结构
1.1 switch case
switch case 结构是一个精准的 if else if
// 格式
switch (/* 选项数据存储变量 */) {
case 常量1:
// 处理方式1;
break;
case 常量2:
// 处理方式2;
break;
case 常量3:
// 处理方式3;
break;
default:
// 所有的匹配项没有对应情况,最终处理方式方式
break;
}
/*
要求:
1. case 之后的数据类型目前限制在 int
2. case 之后的常量数据不可以重复,具有唯一性。
3. switch case 结构中,可以执行的内容,有且只有在 case 之后或者 default之后
4. default 可以省略,但是如果代码中没有匹配的 case 选项,代码没有任何的反馈~~
【重点强调】在 阿里巴巴 开发规范中,swtich case 结构,default 不允许省略!!!
执行流程:
代码执行 swtich case 结构,首先取值 switch 之后变量数据内容,于 case 之后常量进行匹配,如果有对应匹配项,按照对应处理方式执行,如果没有一个 case 匹配,执行 default 之后的代码。
*/
1.2 switch case 代码演示
// switch case 案例代码演示
public class Demo1 {
public static void main(String[] args) {
// choose 选择,选项
int choose = 6;
System.out.println("1. 酱牛肉 80 RMB");
System.out.println("2. 手撕椒麻鸡 50RMB");
System.out.println("3. 羊肉泡馍 20RMB");
System.out.println("4. 鱼香肉丝盖饭 15RMB");
System.out.println("5. 牛肉汤 10RMB");
System.out.println();
// switch,小括号内就是存储当前选项的变量,目前使用 choose
switch (choose) {
case 1:
System.out.println("酱牛肉 80 RMB");
break;
case 2:
System.out.println("手撕椒麻鸡 50RMB");
break;
case 3:
System.out.println("羊肉泡馍 20RMB");
break;
case 4:
System.out.println("鱼香肉丝盖饭 15RMB");
break;
case 5:
System.out.println("牛肉汤 10RMB");
break;
default:
System.out.println("您的选择有误,请重新选择~~");
break;
}
}
}
【补充知识点 给予用户提供数据的方式/方法】
关注点:
目前switch case 案例代码, 如果想要执行其他的数据结果,要求用户完成以下操作
- 修改源代码对应数据
- 保存代码
- 编译代码
- 执行代码
对于普通用户而言是不可能的!!用户期望效果是代码运行,用户提供数据,代码执行判断情况,给予结果反馈,不需要考虑代码的执行,编译,运行过程。【只要求用户提供数据】
针对于当前代码而言,我们缺少可以获取用户提供数据的方式。【思想很重要】
【注意】以下技术点不重要,只是勉强完成目前代码所需,如果你确实有需要,请复制粘贴我的代码,不要学会,不要自己写!!
目前考虑到目前只能使用终端来获取用户数据形式,并且终端获取数据对于后期开发没有任何实用价值。
Java 中的扫描器
使用流程,请复制粘贴使用,选择合适的套餐
1. 在public class 类名之上导包 ==> 点技能点
import java.util.Scanner;
2. 代码中准备 Scanner 变量,以备使用
Scanner sc = new Scanner(System.in);
3. 根据需要,选取对应的套餐,复制粘贴解决问题,不会拉倒!!!当我没讲
int类型数据
int类型变量 = sc.nextInt();
float类型变量 = sc.nextFloat();
double类型数据 = sc.nextDouble();
char类型数据 = sc.nextLine().charAt(0);
// switch case 案例代码演示
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
// choose 选择,选项
int choose = 0;
Scanner sc = new Scanner(System.in);
System.out.println("1. 酱牛肉 80 RMB");
System.out.println("2. 手撕椒麻鸡 50RMB");
System.out.println("3. 羊肉泡馍 20RMB");
System.out.println("4. 鱼香肉丝盖饭 15RMB");
System.out.println("5. 牛肉汤 10RMB");
System.out.println("美团优选,为您配送!!!");
System.out.println();
choose = sc.nextInt();
// switch,小括号内就是存储当前选项的变量,目前使用 choose
switch (choose) {
case 1:
System.out.println("酱牛肉 80 RMB");
break;
case 2:
System.out.println("手撕椒麻鸡 50RMB");
break;
case 3:
System.out.println("羊肉泡馍 20RMB");
break;
case 4:
System.out.println("鱼香肉丝盖饭 15RMB");
break;
case 5:
System.out.println("牛肉汤 10RMB");
break;
default:
System.out.println("您的选择有误,请重新选择~~");
break;
}
}
}
【补充知识点 用户操作友好提示/操作引导提示】
用户使用软件,需要在操作过程中,给予用户合理,合情,合适,友好的提示内容,方便用户使用我们的软件。
增强用户粘性!!!
【补充知识点 用户输入数据合法性判断】
在实际开发中,用户使用软件是极有可能给予软件的操作或者数据是不合法!!
需要考虑出现了用户提供数据异常的情况下是否应该给予用户反馈,或者采用其他的处理方式。
用户提交数据需要根据实际情况来进行合法判断,如果不合法
2. 循环结构
2.1 为什么要循环结构
代码中容易出现重复,复用代码,如果仅通过最为基础的 CV 操作,会导致以下问题
1. 代码冗余
2. 代码阅读行极差
3. 代码维护性极差
2.2 while 循环结构
//格式
while (/* 循环条件判断 boolean true or false */) {
// 循环体
// (循环条件变更)
}
/*
执行流程:
代码执行 while 循环结构,首先判断 while 之后小括号中的循环条件是否为 true,如果为 true 执行循环体, 回到 while 之后小括号判断,直到循环条件为 false 终止循环!!!
*/
// while 循环结构演示
public class Demo2 {
public static void main(String[] args) {
// int 类型变量控制循环次数
int num = 10;
// while 小括号,循环条件必须是一个 boolean 类型
// 无线循环解决方式: Ctrl + C
while (num > 0) {
System.out.println("恭喜您!!一等奖一亿元!!");
num -= 1; // or num--; or --num
num--;
--num;
}
}
}
2.3 do while 循环结构
// 格式
// 注意 结尾的分号,必须要有!!!
do {
// 循环体
// (循环条件变更)
} while (/* 循环条件 boolean true or false */);
/*
执行流程:
代码执行 do while 循环结构,首先执行一次循环体内容,再来判断 while 之后小括号中循环判断条件是否为 true,如果为 true 继续执行循环体,如果为 false 终止循环。
*/
// do while 循环结构
public class Demo3 {
public static void main(String[] args) {
int num = 0;
do {
System.out.println("欢迎来到洛阳理工学院");
num++;
++num;
num += 1;
} while (num < 30);
}
}
2.4 for 循环结构【重点】
// 格式
for (/*循环条件初始化*/;/*循环条件判断*/;/*循环条件变更*/) {
//循环体
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w7moz8xP-1666367554162)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20221021160354208.png)]
// for 循环结构演示
public class Demo4 {
public static void main(String[] args) {
/*
常用的 for 循环方式
for 循环小括号中的不同条件使用 ; 分割
目前的 for 循环,循环次数 10 次
i 的值在循环过程的变换 0 1 2 3 4 5 6 7 8 9
*/
for (int i = 0; i < 10; i += 2) {
System.out.println("不知火舞");
}
}
}
循环第一次
i = 0; 0 < 10 成立,循环可以执行
i += 2; ==> i = 2
循环第二次
i = 2; 2 < 10 成立,循环可以执行
i += 2; ==> i = 4
循环第三次
i = 4; 4 < 10 成立,循环可以执行
i += 2; ==> i = 6
循环第四次
i = 6; 6 < 10 成立,循环可以执行
i += 2; ==> i = 8
循环第五次
i = 8; 8 < 10 成立,循环可以执行
i += 2; ==> i = 10
循环第六次
i = 10; 10 < 10 不成立,循环不可以执行,循环终止!!!!!!
3. 作业
1. 整理笔记
2. 案例代码三遍
3. 练习题
尽力而为,不要钻牛角尖,群里多讨论
- 展示0 ~ 100以内的所有偶数
int even = 0;
while (even <= 100 && even % 2 == 0) {
System.out.println(even);
even += 2;
}
- 展示0 ~ 100以内的所有奇数
int odd = 1;
while (odd <= 100 && odd % 2 != 0) {
System.out.println(odd);
odd += 2;
}
- 计算1 - 150 的和
int num = 1;
int num1 = 0;
while (num <= 150) {
num1 += num;
num += 1;
}
System.out.println(num1);
- 逢7过!!! 【100以内的】
for (int num2 = 0 ; num2 < 100; num2++ ) {
if (num2 % 10 != 7 && num2 %7 != 0 && num2 / 10 != 7) {
System.out.println(num2);
}
}
- 多种方法打印26个小写字母
//5. 多种方法打印26个小写字母
public class Demo7 {
public static void main(String[] args) {
// for 循环
char ch;
for (ch = 'a'; ch >= 'a' && ch <= 'z'; ch++) {
System.out.print(ch+"\40");
}
System.out.println();
// while 循环
ch = 'a';
while (ch >= 'a' && ch <= 'z') {
System.out.print(ch+"\40");
ch++;
}
System.out.println();
// do while 循环
ch = 'a';
do {
System.out.print(ch+"\40");
ch++;
} while ( ch >= 'a' && ch <= 'z');
}
}
-
例如:输入 5 8;计算 5 + 6 + 7 + 8;输出 26.
/*例如: 输入 5 8; 计算 5 + 6 + 7 + 8; 输出 26. */ import java.util.Scanner; public class Demo8 { public static void main(String[] args) { int i = 0; // 输入变量i int j = 0; //输入变量j int num; Scanner sc = new Scanner(System.in); i = sc.nextInt(); j = sc.nextInt(); if (i < j) { for (num = i ; i < j; i++) { num += i+1; // i 的自增还未取值 } System.out.println(num); } else { for (num = j; i > j; j++) { num += j+1; // j 的自增还未取值 } System.out.println(num); } } }
-
整数逆序输出, 例如输入一个整数12345,输出5 4 3 2 1
/* 7. 整数逆序输出, 例如输入一个整数12345,输出5 4 3 2 1 */ import java.util.Scanner; public class Demo9 { public static void main(String[] args) { int i = 0; Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数序列"); i = sc.nextInt(); int num; if (i != 0) { do { num = i % 10; System.out.println(num); i = i / 10; } while (i !=0); } else { System.out.println("请输入正确的整数"); } } }
-
8.
*****
*****
*****
*****
*****
public class Demo10 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) { // i取值0 进入下一循环,打印五个*回归此循环,i = 1 2 3 4 各打印五个*
for (int j = 0; j < 5; j++) { // i = 0,j开始循环打印5个*,j循环一共进行了25次 分五次执行
System.out.print("*\40");
}
System.out.println();
}
}
}
9.
*
**
***
****
*****
public class Demo11 {
public static void main(String[] args) {
for (int i = 1; i < 6; i++) {
for (int j = 0; j < i; j++) {
System.out.print("*\40");
}
System.out.println();
}
}
}
10.
*
***
*****
*******
*********
11.【拔高题】
*
***
*****
*******
*********
*******
*****
***
*
12.【拔高题】
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
ABCDCBA
ABCBA
ABA
A
13.【拔高题】
###*###
##*#*##
#*###*#
*#####*
#*###*#
##*#*##
###*###
**
public class Demo11 {
public static void main(String[] args) {
for (int i = 1; i < 6; i++) {
for (int j = 0; j < i; j++) {
System.out.print("*\40");
}
System.out.println();
}
}
}
10.
*
***
*****
11.【拔高题】
*
*
12.【拔高题】
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
ABCDCBA
ABCBA
ABA
A
13.【拔高题】
######
#####
#####
#####
#####
#####
######