千分教育2218期2022.10.21日

复习
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 案例代码, 如果想要执行其他的数据结果,要求用户完成以下操作

  1. 修改源代码对应数据
  2. 保存代码
  3. 编译代码
  4. 执行代码

对于普通用户而言是不可能的!!用户期望效果是代码运行,用户提供数据,代码执行判断情况,给予结果反馈,不需要考虑代码的执行,编译,运行过程。【只要求用户提供数据】

针对于当前代码而言,我们缺少可以获取用户提供数据的方式。【思想很重要】

【注意】以下技术点不重要,只是勉强完成目前代码所需,如果你确实有需要,请复制粘贴我的代码,不要学会,不要自己写!!

目前考虑到目前只能使用终端来获取用户数据形式,并且终端获取数据对于后期开发没有任何实用价值。
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. 练习题

尽力而为,不要钻牛角尖,群里多讨论

  1. 展示0 ~ 100以内的所有偶数
	int even = 0;
		
		while (even <= 100 && even % 2 == 0) {
			System.out.println(even);
			even += 2;
		}
  1. 展示0 ~ 100以内的所有奇数
    int odd = 1;
		
		while (odd <= 100 && odd % 2 != 0) {
			System.out.println(odd);
			odd += 2;
		}
  1. 计算1 - 150 的和
    int num = 1;
		int num1 = 0;
		
		while (num <= 150) {
			num1 += num;
			num += 1;
		}
		System.out.println(num1);
  1. 逢7过!!! 【100以内的】
    for (int num2 = 0 ; num2 < 100; num2++ ) {							
			if (num2 % 10 != 7 && num2 %7 != 0 && num2 / 10 != 7) {
				System.out.println(num2);
			}	
		}
  1. 多种方法打印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');
	}
}
  1. 例如:输入 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);
    		}
    		
    	}
    }
    
    1. 整数逆序输出, 例如输入一个整数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.【拔高题】
######
##
###
#
####
#####
#
####
##
###
###
###


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值