复习
AJCG阿里巴巴 java 开发规范
码出规范,码出高效
针对于标识符命名规范
标识符是 程序员在自行开发过程中,可以使用的自定义名称,主要于 变量名, 方法名, 类名, 接口名...
1. 标识符有且只能使用英文字母(A ~ Z,a ~ z)
数字(0 ~ 9)
下划线( _ )
2. 标识符要求英文字母开头
3. Java 标识符严格区分大小写
4. 标识符没有严格的长度限制,但是会根据实际的业务开发需求限制标识符长度
小驼峰
第一个单词首字母小写,之后的每一个单词首字母大写
适用场景 变量名 , 方法名
大驼峰
要求每一个单词首字母大写
适用场景 类名 接口名
下划线
要求所用英文字母全部大写,不同的单词之间使用 下划线分割 _
5. 标识符在一定范围内唯一
6. 标识符不能使用 Java 已经占用的关键字和保留字, 变颜色无法使用
运算符
算术运算符 + - * / % = ()
增强版 += -= *= /= %=
自增自减运算符 ++ ——(单独成行,互不干扰)
变量前,先自增/自减 后提供数据
变量后,先提供数据 后自增/自减
【使用 += 1 or -= 1 替换自增自减运算符】
关系运算符
< > >= <= != ==
对外结果为 boolean 类型
逻辑运算符
&& 逻辑与 一假即假,同真为真
|| 逻辑或 一真即真,同假为假
!= 取反
逻辑与短路原则
如果出现 false 条件 ,不在执行下面操作
逻辑或短路原则
如果出现 true 条件 ,不在执行下面操作
Java学习第四天
分支结构和循环语句
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 选项,代码没有任何反馈
【重点强调】 在 阿里巴巴 开发规范中 switch case中 default 不能省略
执行流程:
代码执行 Switch case 结构,首先取值 switch 之后变量数据, 于 case 之后变量数据内容,于 case 之后
常量进行匹配,如果有对应匹配项,按照对应处理方式执行,如果没有任何一个 case 匹配,执行 default 之后的代码。
*/
public class Demo1 {
public static void main(String []args) {
System.out.println("选择你需要的:");
int choose = 3;
System.out.println("1. 酱牛肉 80RMB");
System.out.println("2. 方中山胡辣汤 18RMB");
System.out.println("3. 羊肉烩面 20RMB");
System.out.println("4. 盖浇饭 20RMB");
System.out.println("<--------------------------------->");
System.out.println("我选择的是:");
// switch 小括号内就是存储当前选项的变量,目前使用 choose
switch (choose) {
case 1:
System.out.println("1.酱牛肉 80RMB");
break;
case 2:
System.out.println("2. 方中山胡辣汤 18RMB");
break;
case 3:
System.out.println("3. 羊肉烩面 20RMB");
break;
case 4:
System.out.println("4. 盖浇饭 20RMB");
break;
default:
System.out.println("你的选择有误~~");
break;
}
System.out.print("------------------------");
}
【补充知识点】
关注点:
目前案例代码 switch case 案例代码,如果想要执行其他的数据结果,要求用户完成以下操作
修改源代码对应数据
保存代码
编译程序
执行程序
对于普通用户而言是不可能的!!用户期望的效果时代吗运行,用户提供数据,代码执行判断情况,给予结果反馈, 不需要考虑代码的执行,编译,运行过程。【只要求用户提供数据】
针对于当前代码而言,我们缺少可以获取用户提供数据的形式。【思想很重要】
【注意】以下技术点不重要,只要面前完成目前代码所需,如果你确实需要,请复制粘贴我的代码,不要学会,不要自己写!!目前考虑只能使用终端来获取用户数据形式,并且终端获取数据对于后期开发没有任何实际价值。
Java 中的扫描器
使用流程,请复制粘贴使用,选择合适的套餐
1. 在 public class 类名之上导包 == > 点技能点
import java.util.Scanner;
2. 准备 Scanner 变量, 以备使用
Scanner sc = new Scanner(System.in);
3. 根据所需,选取对应的套餐
int 类型数据
int 类型变量 = sc.nextInt();
float 类型数据
float 类型变量 = sc.nextFloat();
double 类型数据
double 类型变量 = sc.nextDouble();
char 类型数据
char 类型变量 = sc.nextChar();
【补充知识点 用户操作友好提示/操作引导提示】
用户使用软件,需要在操作过程中,给予用户合理,合情,合适,友好的提示内容,方便用户使用我们的软件
增强用户粘性!!!
【补充知识点, 用户输入数据合法判断】
在实际开发中,用户使用软件是极有可能给予软件的操作或者数据是不合法!!
需要考虑出现了用户提供数据异常的情况下是否应该给予用户反馈,或者采用其他处理方式。
用户提交数据需要根据实际情况进行合法性判断,如果过不合法,不可以进入正常的数据判断处理
过程,中断程序运行,给予用户提示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iTlQFHtK-1666425692289)(F:\qianfeng\笔记\img\image-20221021143932042.png)]
2. 循环结构
2.1为什么要循环结构
代码中容易出现重复,复用代码,如果仅通过最为基础的 cv操作,会导致以下问题
1. 代码冗余
2. 代码阅读性极差
3. 代码维护性极差
2.2 while循环结构
//格式
while (/*循环条件判断*/) {
//循环体
//循环条件变更
}
执行流程:
代码执行 while 循环结构 首先判断 while 之后小括号中的循环条件是否为 true 如果为 true 执行循环体,
回到 while 之后小括号判断,直到循环条件为 false 终止循环!!
public class Demo3 {
public static void main(String[] args) {
int num = 10;
while (num > 0) {
System.out.println("今天吃泡面!!");
num -= 1;
}
}
}
2.3 do while 循环结构
//格式
//注意 结尾的分号 必须要有
do {
//循环体
//循环条件变更
} while (/*循环条件判断*/);
执行流程:
代码执行 do while 循环结构 ,首先执行一次循环体内容,再来判断 while 之后小括号中,条件如果是 true 继续执行循环体,如果为 false 终止循环。
int num1 = 5;
do {
System.out.println("志衡请我们吃火锅!!!");
num1 -= 1;
} while (num1 > 0);
2.4 for 循环结构【重点】
// 格式
for (/*循环条件初始化*/; /*循环条件判断*/;/*循环条件变更*/) {
//循环体
}
for (int num = 1;num <= 10;num++) {
System.out.println("第" + num + "行");
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G6CaF9DP-1666425692292)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20221021160429177.png)]
1. 展示0 ~ 100以内的所有偶数
2. 展示0 ~ 100以内的所有奇数
//方法一
for (int num = 0;num <= 100; num++) {
if (num % 2 == 0) {
System.out.print(num + "\t ");
}
}
//方法二
for (int i = 0; i <= 100; i += 2) {
System.out.print(i + "\t");
}
//2. 展示0 ~ 100以内的所有奇数
//方法一
for (int num1 = 0;num1 <= 100; num1++){
if (num1 % 2 != 0) {
System.out.print(num1 + "\t ");
}
}
//方法二
for (int i = 1; i <= 100; i += 2) {
System.out.print(i + "\t");
}
3. 计算1 - 150 的和
int ret = 1;
for (int num2 = 2;num2 < 151; num2++) {
ret += num2;
}
System.out.println(ret);
//高斯求和公式
等差数列 ( 首项 + 末项) * 项数 / 2;
法无禁止即自由!!开发可以用数学!!
System.out.println((1 + 150) * 150 / 2);
4. 逢7过!!! 【100以内的】
for (int num3 = 0;num3 <101; num3++) {
if (num3 % 7 != 0 && num3 % 10 != 7 && num3 / 10 != 7) {
System.out.print(num3 + " \t");
}
}
5. 多种方法打印26个小写字母
char ch = 'z';
while (ch >= 'a') {
System.out.print(ch + "\t");
ch--;
}
System.out.println();
//方法2
for (char ch = 'a'; ch > 'a' && ch <= 'z'; ch++){
System.out.print(ch);
}
6. 例如:
输入 5 8;
计算 5 + 6 + 7 + 8;
输出 26.
/*
int i = sc.nextInt();
int j = sc.nextInt();
int ret = 0;
if (i <= j) {
while (i <= j) {
ret += i;
i += 1;
}
System.out.println(ret);
} else {
while (i >= j) {
ret += j;
j +=1;
}
System.out.println(ret);
}
7. 整数逆序输出, 例如输入一个整数12345,输出5 4 3 2 1
整数逆序输出, 例如输入一个整数12345,输出5 4 3 2 1
注意引入 java.util.Scanner;
Scanner sc = new Scanner(System.in);
System.out.println("请输入一串数字");
for (int num = sc.nextInt();num > 0;num /= 10) {
System.out.print(num % 10);
}
while (num > 0) {
System.out.pritln(num % 10);
num /= 10;
}
8.
*****
*****
*****
*****
*****
/*
图形推演
解题思路
1.总行数是多少,怎么控制
2.每一行的内容是什么,怎么控制
*/
for (int num = 1;num < 6; num++) {
for (int num1 = 1; num1 <= 5; num1++) {
System.out.println("*");
}
System.out.println();
}
9.
*
**
***
****
*****
//直角三角形
int line = 5;
for (int a = 1;a < line; a++) {
for (int b = 0;b < a; b++) {
System.out.print("*");
}
System.out.println();
}
10.
*
***
*****
*******
*********
//等腰三角形
int a = 6;
for (int i = 1;i < a; i++) {
for (int j = 0;j < a - i; j++ ) {
System.out.print(" ");
}
for (int k = 1;k <= 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println();
}
//倒等腰三角形
int a = 5;
for (int i = 1;i < a; i++) {
for (int j = 0;j <= i; j++) {
System.out.print(" ");
}
for (int k = 1;k <= 2 * (a - i) - 1; k++) {
System.out.print("*");
}
System.out.println();
}
a - i; j++ ) {
System.out.print(" “);
}
for (int k = 1;k <= 2 * i - 1; k++) {
System.out.print(”“);
}
System.out.println();
}
//倒等腰三角形
int a = 5;
for (int i = 1;i < a; i++) {
for (int j = 0;j <= i; j++) {
System.out.print(” “);
}
for (int k = 1;k <= 2 * (a - i) - 1; k++) {
System.out.print(”");
}
System.out.println();
}