Java标识符命名规则,运算符,分支结构

Java标识符命名规则,运算符,分支结构

1 Java标识符命名规则
1.1命名规则案例
163邮箱,注册邮箱名限制
	6~18个字符,可使用字母,数字,下划线,需要以字母开头

命名规则分析
	1.有长度限制
	2.可用字符限制(字母,数字,下划线)
	3.起始限制 要求使用字母开头
	
1.2基于阿里巴巴Java开发规约限制 的标识符命名规范
标识符是是么???
	程序员在代码开发中,可以用于自定义的名称信息,包括变量名,方法名,类名,接口名……
	
AJCG 标识符命名规范:
	1.在标识符有且只允许使用英文字母(A~Z,a~z),数字(0~9),唯一可以使用的标点符号下划线(-)
	2.标识符要求务必使用英文字母开头,不允许使用其他字符
	3.Java中的标识符严格区分大小写,大写和小写不同!!!
	4.标识符没有严格长度限制,但是会根据实际情况,限制标识符长度。
	5.标识符要求做到【见名知意,动宾结构】
		正确案例
			studentName studentAge studentScore  大小写区分不同单词
		
			getStudentName setStudentName   动宾结构【见名知意】
			getStudentAge  setStudentAge
		
		错误案例:
		含糊不清,无法分析变量名没有明确的语义性,要求变量名定义单独成立,一行一个
			int a,b,c,d,e;
			
		看似高阶,实则低阶
		payBeizhu 不能出现英文和拼音混合
		zhiFuBeiZhu 不允许,拼音除专用名词(alibaba beijing)之外,其他不允许使用
		tsgly  绝对不允许使用,阅读性极差!!!

6.标识符要求使用驼峰命名法或下划线命名法
	驼峰命名法:
		小驼峰:
			标识符首字母小写,之后的每一个单词首字母大写,作为区分标记
			studentName  studentAge
		常用语:
			变量名,方法名
		大驼峰
			标识符每一个单词首字母大写
			FirstJava Demo1 Demo2
			ArrayIndexOutOfBoundsException
				数组下标越界
			BufferedInputStream
		常用于:
			类名,接口名
			class之后的名称就是类名。
	下划线命名法:
		所有单词首字母全部大写,不同单词之间使用_分别
		Java_HOME MAX_VALUE MIN_VALUE
		MAX_ARRAY_SIZE DEFAULT_CAPACITY
		
7.标识符不得使用已经被Java占用的的关键字和保留字
	代码中变颜色的内容都不可以用于自定义标识符,例如 int float double
8.标识符在一定范围内唯一
	163邮箱绝对不可能出现两个人账号一样!!!
			
		
2.运算符
2.1算术运算符
开发中使用的算数运算符:
  + - * / () = %
开发中使用要求:
	1.先乘除后加减
	2.除数不能为零
	3.从左至右基本原则
	4.有优先级需求,使用括号处理
	5.= 赋值号, 将赋值号右边的数据,赋值给左侧的变量
取余%:
	
	小学没有学分数/小数
	10 ÷ 6 = 1 ... 4
	1是商为结果
	4是余数
 	开发中取余目标结果就是余数,如果按上面的案例,结果为四
 	
 除以/:
	Java规定:如果是整数相除,没有小数,取整!!!
	 5 / 2 = 2;
	小案例:
		10 / 12 = ?
        结果为0
        10 % 12 = ?
        结果为10
        12 / 10 = ?
        结果为1 
        12 % 10  = ?
        结果为2
        25 / 3 = ?
        结果是8
        25 % 3 = ?
        结果是1
	 
	
  public class Demo1{
	public static void main(String[] args){
		
		int num1 = 10;
		int num2 = 20;
		num1 = num1 + num2; //num1 = 30
		
		/*
		【注意】
			代码运行过程中,要求关注变量存储数据变化过程。
			num1 目前数据存储通过第七行代码存储内容变化结果为30
			下方代码执行过程中,num1 = 30  num2 = 20  ==>num1 = 30 * 20 
		*/
		
		num1 = num1 * num2;  //num1 =600      num2 =20
		num1 = num1 - num2;  //num1 =580
		num1 = num1 / num2;  //num1 =29
		num1 = num1 % num2;  //num1 = 9
		
		/*
		【注意】
			num2 数据存储在整个的运算过程中,没有发生任何变化
			因为num2 数据存储内容没有被重新赋值
			[结论]
				变量数据存储内容,有且只有在被赋值的情况下,才可以修改
		*/
		System.out.println(num1);
		System.out.println(num2);
		
		
		
	}
}
【增强版运算符】 
+= -=  *= /=  %=

int num1 = 10;
int num2 = 20;

num1 = num1 + num2;
num1 += num2;
/*
优势:
	1.简化代码结构,节省代码体量
	2.自带buff,有特殊功能
*/
2.2自增资减运算符
自增自减运算符格式:
	++ 自增 ==>操作的变量数据内容自增 1 
	-- 自减 ==> 操作的变量数据内容自减 1 
//自增自减运算符演示
public class Demo2{
	public static void main(String[] args){
		int num1 = 10;
		
		
		System.out.println(num1);
		/*
		自增运算符作用是操作的变量数据存储内容自增1 
		
		*/
		System.out.println(num1++);  //注意自增运算符的位置
		System.out.println(num1);
		
		
		System.out.println(++num1);
		System.out.println(num1);
		System.out.println();
		
		
		/*
		分析:
			1.所有的自增操作全部有效,num1 数据存储结果原本是10
			通过两次自增操作后,num1目前数据存储情况为12
			2.发现问题
				System.out.println(num1++);  为什么结果为10
				当前代码运行时,num1数据存储结果为10, ++自增操作
				在变量之后,执行流程
					a.取值目前的num1数据内容参与代码运行,得到数据10
					b.代码当前执行完毕之后,num1完成自增操作 num1   10==>11
					看到的展示效果为10的情况 【先取值后自增】
				System.out.println(++num1);  为什么结果为12
				当前代码运行时,num1数据存储结果为11,++自增操作
				在变量之前,执行流程
					a.首先num执行自增操作,num11 ==> 12
					b.取值当前num数据存储情况,参与代码运行,得到数据12
					看到的展示效果为12的情况,【先自增后取值】
		【总结】
			++ 在变量之前,【先自增后取值】
			++ 在变量之后,【先取值后自增】
			自减操作同理
			代码歧义性过大!!!
			
			
		*/
	}
}
【语法总结】
	1. 自增自减运算符有且只能操作变量,不可以操作常量!!!
	2. 自增自减运算符在变量之前和之后,操作流程不同
			在变量之前,先操作后取值
			在变量之后,先取值后操作
			
【使用建议】
	1.自增自减歧义性过大,代码中尽量减少使用
	2.如果必要使用
		a.单独发行
			int num = 10;
			num++;
			++num;
		b.使用 += 1 or -= 1 替换 自增自减运算符
			++num or num++ ==> num += 1
			--num or num-- ==> num -=1
			swift ios开发语言中,已经禁用自增自减运算符,避免歧义,全部使用+= 1 和 -=1替换
			提高代码阅读性

【自增自减运算符常用位置】
	1.循环操作
	2.面试题
【面试题】
int num = 5;
int ret = num++ * ++num;

num = ?
ret = ?
/*
num 初始化数据为5
	自增自减运算符是针对于变量操作,自增自减运算符存在,一定会修改对应的变量数据内容
	目前表达式中的存在num++ 和++num
	针对于num的自增操作执行了两次
	所以num变量最终数据存储结果为7
	
ret的结果是取决于num在表达式中的数据提供效果
	ret  = num++ * ++num
	num++ 先取值,后自增
		针对于 ret计算表达式的数据提供为【5】
		num++ 取值之后自增,num数据存储内容为6
	++num 先自增,后取值
		++num针对于num数据存储修改,num数据存储内容为7
		针对于ret的运算就是5*7 为35
		
		*/

【面試題】
int num = 10;
++(num++)++
num = ?;
/*
语法错误
	有小括号先处理括号中的内容
	小括号的数据内容对于整个表达式而言是一个【值/数据】,不是变量!!
				小括号里的内容对外的结果不是num变量
	自增自减运算符有且只能操作变量 ,不能操作【常量】,同样无法操作【值/数据】
*/
2.3关系运算符
判断表达式两端的数据结果是否满足关系运算符需求,对外的结果是Boolean(true false)

Java中开发使用的关系运算符:
  >  <  => <= != ==
  //关系运算符演示
public class Demo3{
	public static void main(String[] args){
	   /*
		关系运算符对外的数据结果为Boolean这里定义一个Boolean变量ret存储关系
		运算符结果
		*/
		boolean ret = 5>2;
		
		System.out.println(ret);//true
		
		ret = 5<2;java
		System.out.println(ret);//false
		
		ret = 5 >= 5;
		System.out.println(ret);//true
		
		ret = 5<= 3;
		System.out.println(ret);//false
		
		ret = (5 == 5);
		System.out.println(ret);//true
		
		ret = (5 != 15);
		System.out.println(ret); //true
		
	}
	
	
}
2.4逻辑运算符
条件叠加,多个条件整合成一个完整的条件分析逻辑运算符对外最终结果为Boolean
逻辑与
	与&&
	同真为真,有假即假
	成为会员的条件:
	充值并消费500,充值不消费,消费不充值都不可
逻辑或
	或||
	有真即真,同假即假
逻辑非
	【取反!】
	强牛,犟,真变假,假变真
	
	
	
//逻辑运算符演示
public class Demo4 {
	public static void main(String[] args) {
		
		boolean ret = 10 > 5 && 5 > 2;
		System.out.println(ret);  //true
		
		ret = 10 > 15 && 5 > 2;
		System.out.println(ret); //false
		
		ret = 10 > 15 || 5 > 2;
		System.out.println(ret); //true
		
		ret = 10 > 15 || 5 < 2;
		System.out.println(ret); //false
		
		ret = !(10 > 5);
		System.out.println(ret); // false
		
		
		
		int num1 = 66;
		boolean ret1 = (num1 % 4 == 0 && num1 % 100 != 0) || (num1 % 100 == 0);
		System.out.println(ret1);
		
	}
}
2.5逻辑表达式短路原则
int num = 10;
boolean ret = num > 15 && ++num >10;

num = 10;
ret = false;

/*
结果分析
	&&同真为真,有假即假
	如果一个逻辑与表达式中出现了一个false条件,该逻辑表达式是否可能为true?
	绝对不可能!!!
	逻辑与表达式,计算机在运行过程中,一旦发现false条件!!当前逻辑与表达式已经结果明确为false!!
	计算机为节约资源,从false条件开始,之后的所有表达式不在运行!!
	【逻辑与短路原则 同真为真,有假即假】
*/

int num = 10;
boolean ret = num > 5 || ++num > 5;

num = 10;
ret = true;
/*
结果分析:
	||有真即真,同假为假
	逻辑或表达式,计算机在运行过程中,一旦发现true条件!!!当前逻辑与表达式已经结果明确为true!!
	计算机为节约资源,从ture条件开始,之后的所有表达式不在运行!!节约计算机资源。
	逻辑或短路原则 有真即真,同假即假。

*/

2.6运算符小案例
1.完成条件判断书写,判断一个数值是否在0~100之间

int num = 50;
//0 <== num <==100 数学规范,但不支持开发
num >= 0 && num <== 100;
//使用逻辑与表达式连接条件,限制当前num数据范围在0~100

2.完成条件判断书写,判断一个字符是否为数字字符

char ch = '4';//字符变量 ch 存储 字符常量 '4'==> 数字字符
ch >= '0' && ch <== '9';
//使用逻辑与表达式连接条件,限制当前ch字符数据存储范围是 '0' ~'9
//如果操作过程中涉及到字符内容,有且只允许使用字符本身


3.完成条件判断书写,判断一个字符知否为大写英文字母

char ch = 'Y';
ch >='A' && ch <='Z';

4.完成条件判断书写,判断一个字符是否为英文字母

char ch = 'h';
ch >= 'A' && ch <= 'Z';  //大写英文字母条件
ch >= 'a' && ch <= 'z'; //小写英文字母条件
//不可能出现一个英文字母既满足大学,也满足小写!!!满足其一即可认为是英文字母
ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z';
(ch >= 'A' && ch <= 'Z' ) || (ch >= 'a' && ch <= 'z');
/*
以上两个条件都是正确条件!!!
	小括号使用可以认为是一个整体!!!从阅读性角度分析,
可能优于没有括号的版本
	逻辑运算符与优先级高于或!!! 无需括号限制优先级和整体性问题。

*/

5.完成条件判断书写,完成闰年条件判断

闰年条件:
1.可以被4整除,但是不能被100整除
2.可以被400整除
	满足以上任意条件都是闰年!!!
	
int year = 2008;
//可以被4整除 取余 4 余数为0 
year % 4 == 0;
//不能被100整除
year % 100 != 0;
//可以被400整除
year % 400 == 0;

year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ; 
year%4==0&&year%100!=0||year%400==0;//拉胯


3.分析结构
3.1生活场景
会员等级:
  超市
  	消费满500元     黑铁VIP
  	消费满5000元    白银VIP
  	消费满50000元   黄金VIP
  	消费满500000元  钻石VIP
  	
  充值返现:
  	超市
  	 充值100        送10
  	 充值1000       送100
  	 充值10000      送1000
  	 充值100000     送10000
  	 
  学生成绩等级:
  	满分100分
  		90分以上 秀儿
  		80分以上 良儿
  		70分以上 中儿
  		60分以上 过儿
  		60分以下 让你爹穿着拖鞋来校区
  		
  
3.2 if分支结构
//格式
if(/*条件判断boolean true or false*/){
	//语句体
}
/*
执行流程:
	代码运行判读if 之后小括号里面的数据内容是否为TRUE,如果为TRUE执行语句体内容,
	如果为FALSE 不执行。不管if 分支结构中的语句体是否执行,代码依然会从if 大括号之后继续执行。*/
//if 分支结构演示
public class Demo5 {
	public static void main(String[] args) {
		/*
		用户消费满68元,送停车券一张
		tatalprice总价
		*/
		int totalPrice = 150;
		if (totalPrice >= 68) {
			System.out.println("尊贵的用户,送你一张停车券");
			
		}
		System.out.println("欢迎下次光临!!!");
	}
		
}

3.3 if else分支结构
//格式
if (/*条件判断 boolean true or false*/) {
	//true 语句体
	
} else {
	//false 语句体

}
/*
执行流程:
	代码执行 if else 分支结构,首先判断 if 之后小括号中的数据内容判断为TRUE,如果
	为TRUE 执行if 大括号对应的TRUE语句体。如果为FALSE 执行 else 大括号对应的FALSE语句体。执行完毕继续执行后期的代码。
	开发有一个梗
		世界上最遥远的距离,不是我在你面前,你不知道我爱你,而是我在if里,你在else里
*/
//if else分支结构演示
public class Demo6 {
	public static void main(String[] args) {
		/*
		周年庆大酬宾,消费满168元,送小拉菲一瓶,不满送 足力健一双
		*/
		int totalPrice = 200;
		if (totalPrice >= 168) {
			System.out.println("尊贵的用户,送您一瓶小拉菲");
		} else {
			System.out.println("尊贵的用户,送你一双足力健");
		}
		System.out.println("欢迎您下次光临!!!");
		
		int price = 888;
		if (price >= 666) {
			System.out.println("欢迎光临,尊贵的某某某VIP用户");
			
		} else {
			System.out.println("欢迎光临,某某某用户");
			
		}
		System.out.println("感谢光临");
	}
}
3.4 if else-if分支结构
//格式
if (/*条件匹配1*/) {
	//处理方式1
} else if (/*条件匹配2*/) { 
	//处理方式2
} else if (/*条件匹配3*/) {
	//处理方式3
} else {
	//不满足任何条件匹配的备选处理方式
	
}
/*
执行流程:
	代码运行 if else-if 分支结构,自上而下匹配if之后的小括号里面的条件,如果发现匹配项
	执行对应的处理方式,跳出分支结构,如果没有任何一个if 条件满足,执行else 中的备选处理方式。
	if else-if分支结构执行完成,继续执行之后的代码。

*/
// if else-if 分支结构代码演示
public class Demo7 {
	public static void main(String[] args) {
		int totalPrice = 111;
		//消费金额递增
		
		if (totalPrice >= 666 && totalPrice < 1688) {
			System.out.println("欢迎光临,尊贵的铂金VIP");
		} else if (totalPrice >= 1688 && totalPrice < 3888) {
			System.out.println("欢迎光临,尊贵的黄金VIP");
		} else if (totalPrice >= 3888 && totalPrice <8888) {
			System.out.println("欢迎光临,尊贵的钻石VIP");
		} else if (totalPrice >= 8888) {
			System.out.println("欢迎光临,尊贵的钻紫VIP");
		}else {
			System.out.println("欢迎光临,尊贵的用户");
		}
		
		/*
		消费金额递减
		对比上方的条件,递减方式
			1.if 之后条件内容没有逻辑与判断,效率高
			2.代码量降低
			3.分析条件的罗列关系
			
		*/
		
		
		int price = 1980;
		
		if (price >= 8888) {
			System.out.println("欢迎光临,尊贵的紫钻VIP");
		} else if (price >= 3888) {
			System.out.println("欢迎光临,尊贵的钻石VIP");
		} else if (price >= 1688) {
			System.out.println("欢迎光临,尊贵的黄金VIP");
		} else if (price >= 666){
			System.out.println("欢迎光临,尊贵的铂金VIP");
		} else {
			System.out.println("欢迎光临,尊贵的用户");
		}
		
	
		System.out.println("期待你的再次光临");
	}
	
}
	

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值