java基礎03

运算符

概要:针对常量和变量之间进行运算的符号。

eg: a + 1  a + b a / b a > b
运算符的分类:

​ 算术运算符 赋值运算符 关系运算符 逻辑运算符 位运算符 三目运算符。

算术运算符:

+ , - ,  * , / ,  % ,  ++ ,  --
例:    
		System.out.println(2-5); // -3
		System.out.println(2*5); // 10
		System.out.println(2/5); // 0
		System.out.println(2%5); // 2

" + "+在Java当中含义很多:

  1. 作为正数 单目运算符 双目运算符 三目运算符 +5 a + b a ? b : c

    		System.out.println(+5);
    		System.out.println(-5);
    		
    
  2. 加法运算符

    	System.out.println(2+5);
    
  3. 字符串连接符

    注意:
    + 号拼接任意类型的数据结果都是字符串类型

   System.out.println("555"+5);

技巧:

  1. ​ 如何计算中防止精度丢失

    System.out.println((double)2/4); -->添加强制转换成相对应的数据类型
    
  2. ​ 如何分离数中的每一个数

例:

分离1234:
			分离个位: 1234 / 1 % 10
			分离十位: 1234 / 10 % 10
			分离百位: 1234 / 100 % 10
			分离千位: 1234 / 1000 % 10
自增自减运算符

​ 概念:++ – 属于单目运算符

含义:
	++ 表示自增1
	-- 表示自减1

分为
单独使用

​ 表示自增或者自减,没有任何区别

​ 参与运算
如果++放在操作数的左边,就表示先自增再参与运算
如果++放在操作数的右边,就表示先参与运算,再自增或者自减1

例:

public class OperatorDemo02 {
	public static void main(String[] args){
		
		int a = 10;
		int b = 20;
		System.out.println("a=" + a + ",b=" + b);
		
		// a++;  先运算再进行自加1
		// b--;  先运算再进行自减1
		
		//++a;   先进行自加1再进行运算 
		//--b;	 先进行自减1再进行运算 
		//System.out.println("a=" + a + ",b=" + b);
		
		// int c = ++a;
		// int d = --b;
		// System.out.println("a=" + a + ",b=" + b + ",c=" + c + ",d=" + d); // a=11,b=19,c=11,d=19
		
		int c = a++; //c=10
		int d = b--; //d=20
		System.out.println("a=" + a + ",b=" + b + ",c=" + c + ",d=" + d); // a=11,b=19,c=10,d=20
	}
}
赋值运算符

" = ": 这个等于号在Java中表示赋值的意思,真正数学意义上的相等是 ,在JavaScript中还有=

		// 将数据10赋值给变量x
		int x = 10;

扩展赋值运算符:

	+= , -= , *= ,  /= ,  %= 
   	+=  等于 a= a + b 
	-=  等于 a= a - b 
	*=  等于 a= a * b 
	/=  等于 a= a / b 
	%=  等于 a= a % b 
例:
		x += 5; // x = x + 5;
		x *= 5; // x = x * 5;
		System.out.println(x);

经典面试题:

	面试题:
	short s1 = 1;?s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错??
	前者编译失败,shortint类型计算结果是int类型,int类型赋值给short类型,需要强制类型转换
	后者编译通过,因为使用扩展赋值运算符系统会自动帮我们强制类型转换
	
		/*short s1 = 1;
		s1 = (short)(s1 + 1);
		System.out.println(s1);*/
		
		short s1 = 1;
		s1 += 1; // s1 = (short)(s1 + 1);
		System.out.println(s1);
技巧: 如何交换两个数?

​ int x = 10;
​ int y = 20;
​ 1.定义中间变量temp
​ 2.使用异或来进行交换两个数的位置 (位运算符学习)

例:

		int a = 10;
		int b = 20;
		System.out.println("a=" + a + ",b=" + b);
		int temp = 0;
		temp = a; 
		a = b;
		b = temp;
		System.out.println("a=" + a + ",b=" + b);

关系运算符

>  : 小于
<  : 大于
>= : 大于等于
<= : 小于等于
!= : 不等于
== : 等于

关系运算符的结果是boolean类型

例:

public class OperatorDemo05 {
	public static void main(String[] args){
		
		int a = 10;
		int b = 20;
		System.out.println(a > b); // false
		System.out.println(a < b); // true
		System.out.println(a >= b); // false 大于或者等于
		System.out.println(a <= b); // true
		System.out.println(a == b); // false
		System.out.println(a != b); // true
	}
}

逻辑运算符

作用:

​ 连接多个boolean类型的表达式 。
​ boolean类型的表达式1 逻辑运算符 boolean类型的表达式2 逻辑运算符 boolean类型的表达式3。

分类:

& 按位与

		System.out.println(a > b & a < b); // false & true = false
		System.out.println(a > b & a > b); // false & false = false
		System.out.println(a < b & a < b); // true & true = true
		System.out.println(a < b & a > b); // true & false = false

​ | 按位或

		System.out.println(a > b | a < b); // false & true = true
		System.out.println(a > b | a > b); // false & false = false
		System.out.println(a < b | a < b); // true & true = true
		System.out.println(a < b | a > b); // true & false = true

​ ^ 异或

		System.out.println(a > b ^ a < b); // false & true = true 
		System.out.println(a > b ^ a > b); // false & false = false
		System.out.println(a < b ^ a < b); // true & true = false
		System.out.println(a < b ^ a > b); // true & false = true

&& 短路与

		System.out.println(a > b && a < b); // false & true = false
		System.out.println(a > b && a > b); // false & false = false
		System.out.println(a < b && a < b); // true & true = true
		System.out.println(a < b && a > b); // true & false = false

|| 短路或

		System.out.println(a > b ||a < b); // false & true = true
		System.out.println(a > b || a > b); // false & false = false
		System.out.println(a < b || a < b); // true & true = true
		System.out.println(a < b || a > b); // true & false = true

**非:**如果位为0,结果是1,如果位为1,结果是0,

与: 有一个为false结果为false
如果都为true结果才为true。

或: 有一个为true结果为true
如果两个都为false结果才为false。

经典面试题: & 和 && 的区别

	& 	表示按位与,无论什么情况都会同时计算运算符两边的表达式
	&& 	表示短路与, 如果前面的表达式为false,那么无论后面结果如何,都不会去计算后面表达式的值
	&&	开发中使用,&基本不用
	&	常用于位运算,位运算的效率比普通运算要高很多 

位运算符:

		System.out.println(9 & 6); // 0
		System.out.println(9 | 6); // 15
		System.out.println(9 ^ 6); // 15
		System.out.println(!!!!!!!!!!!!!!(a > b)); // false

&:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段

public class data13
{
public static void main(String[] args)
{
int a=129;
int b=128;
System.out.println("a 和b 与的结果是:"+(a&b));
}
}

^ : 相同为false,不同为true

		1001 ^ 0110 =1 0 0 1
		^	0 1 1 0
		-----------
			1 1 1 1

! : 取反
当!的个数是奇数个的时候,结果相反
当!的个数是偶数个的时候,结果不变

条件运算符(三目运算符)

格式: X ? Y : Z
X表达式必须是boolean类型的表达式
执行流程:
首先计算X表达式的结果, 如果X的结果为true, 那么整个表达式的结果就是Y的值
如果X的结果为false,那么整个表达式的结果就是Z的值

例:

public class OperatorDemo07 {
	public static void main(String[] args){
		// 求两个数的最大值
		int x = 200;
		int y = 100;
		int max = x > y ? x: y;
		System.out.println(max);
		
		// 求三个数的最大值?
		int a = 100;
		int b = 200;
		int c = 300;
		// 如果存在三目运算符嵌套的问题,必须使用 () 去改变运算符的优先级,提高程序的可读性
		max = (a > b) ? (a > c? a : c) : (b > c ? b : c);
		System.out.println(max);
				
		// 需求: 小明考试成绩高于99分,老师奖励他一个苹果,否则奖励他一个苹果电脑
		double score = 60;
		String prize = (score > 99) ? "苹果": "苹果电脑";
		System.out.println(prize);
		
	}
}

表达式: 符合一定语法规则的运算符和操作数的式子

运算符: 算数运算符,赋值运算符,关系运算符,逻辑运算符,位运算符(了解), 三目运算符
操作数: 变量或者常量
a + b  a * 6 4 - 3 int a = 10; 

表达式的分类:
1.按照复杂程度来分:
2.简单表达式: 只有一个运算符的表达式 a + b a * 6 4 - 3
3.复杂表达式: 两个或者两个以上的运算符组成的表达式 a > b && a < b
4.如果复杂表达式就必须要知道运算符的优先级
按照运算符两边的操作数来分
单目 双目 三目

	+5 3+a x?y:z

按照名称来分:
		a + b 算数表达式
		
表达式的值: 整个表达式的结果
			int a = 30; int b = 40; a * b
表达式的值的类型: 
			int a = 30; int b = 40; a * b
		
学习复杂表达式:
	(a - b) * c - 4     
	i < 30 && i % 10 != 0 

运算符的优先级
1.有括号先计算括号里面的
2.单目运算符 > 双目运算符 > 三目运算符
3.算数运算符(* / % > + -) > 关系运算符(> <… > == !=) > 逻辑运算符(&& > ||) > 条件运算符 > 赋值运算符
4.如果运算符的优先级相同,从左至右即可
5.+ - > ++ – !

技巧:

​ 如果针对特别复杂的表达式,可以根据运算符的优先级规律,然后使用()改变优先级,提高程序的可读性。

例:

public class OperatorDemo08 {
	public static void main(String[] args){
		int i = 10;
		boolean bool = i < 30 && i % 10 != 0; 
		
		// boolean bool = ((i < 30) && ((i % 10) != 0)); true && false = false
		System.out.println(bool);
		
		int m = 3;
		int n = 4;
		boolean b = (++m == 3) && (n++ == 4); 
		// System.out.println(b);
		System.out.println("m="+m+",n=" +n + ",b=" + b); // m=4,n=4,b=false
	}
}

内容概要:本文设计了一种基于PLC的全自动洗衣机控制系统内容概要:本文设计了一种,采用三菱FX基于PLC的全自动洗衣机控制系统,采用3U-32MT型PLC作为三菱FX3U核心控制器,替代传统继-32MT电器控制方式,提升了型PLC作为系统的稳定性与自动化核心控制器,替代水平。系统具备传统继电器控制方式高/低水,实现洗衣机工作位选择、柔和过程的自动化控制/标准洗衣模式切换。系统具备高、暂停加衣、低水位选择、手动脱水及和柔和、标准两种蜂鸣提示等功能洗衣模式,支持,通过GX Works2软件编写梯形图程序,实现进洗衣过程中暂停添加水、洗涤、排水衣物,并增加了手动脱水功能和、脱水等工序蜂鸣器提示的自动循环控制功能,提升了使用的,并引入MCGS组便捷性与灵活性态软件实现人机交互界面监控。控制系统通过GX。硬件设计包括 Works2软件进行主电路、PLC接梯形图编程线与关键元,完成了启动、进水器件选型,软件、正反转洗涤部分完成I/O分配、排水、脱、逻辑流程规划水等工序的逻辑及各功能模块梯设计,并实现了大形图编程。循环与小循环的嵌; 适合人群:自动化套控制流程。此外、电气工程及相关,还利用MCGS组态软件构建专业本科学生,具备PL了人机交互C基础知识和梯界面,实现对洗衣机形图编程能力的运行状态的监控与操作。整体设计涵盖了初级工程技术人员。硬件选型、; 使用场景及目标:I/O分配、电路接线、程序逻辑设计及组①掌握PLC在态监控等多个方面家电自动化控制中的应用方法;②学习,体现了PLC在工业自动化控制中的高效全自动洗衣机控制系统的性与可靠性。;软硬件设计流程 适合人群:电气;③实践工程、自动化及相关MCGS组态软件与PLC的专业的本科生、初级通信与联调工程技术人员以及从事;④完成PLC控制系统开发毕业设计或工业的学习者;具备控制类项目开发参考一定PLC基础知识。; 阅读和梯形图建议:建议结合三菱编程能力的人员GX Works2仿真更为适宜。; 使用场景及目标:①应用于环境与MCGS组态平台进行程序高校毕业设计或调试与运行验证课程项目,帮助学生掌握PLC控制系统的设计,重点关注I/O分配逻辑、梯形图与实现方法;②为工业自动化领域互锁机制及循环控制结构的设计中类似家电控制系统的开发提供参考方案;③思路,深入理解PL通过实际案例理解C在实际工程项目PLC在电机中的应用全过程。控制、时间循环、互锁保护、手动干预等方面的应用逻辑。; 阅读建议:建议结合三菱GX Works2编程软件和MCGS组态软件同步实践,重点理解梯形图程序中各环节的时序逻辑与互锁机制,关注I/O分配与硬件接线的对应关系,并尝试在仿真环境中调试程序以加深对全自动洗衣机控制流程的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值