二.java的算术,赋值,比较,逻辑运算符,位运算符和三元运算符

复习:标识符的命名规范

包名:xxxyyyzzz
类名、接口名:XxxYyyZzz
变量名、方法名:xxxYyyZzz
常量名: XXX_YYY_ZZZ

一.java的算术运算符

  • + 加法
  • - 减法
  • * 乘法
  • / 除法
  • % 取模(求余数)
  • ++ 递增(使变量值加1)
  • -- 递减(使变量值减1)

++,--这两个比较特殊的运算符

class Numadd{
	public static void main(String[] args){
		int a1 = 10;
		int b1 = ++a1;
		System.out.println("a1="+a1+",b1="+b1);


		int a2 = 10;
		int b2 = a2++;
		System.out.println("a2="+a2+",b2="+b2);
	}
}

//---------- java ----------
//a1=11,b1=11
//a2=11,b2=10
  1. a++(后缀自增):这种操作会返回变量 a 自增前的值,然后 a 的值增加1。也就是说,自增操作发生在返回值之后。

  2. ++a(前缀自增):这种操作会先让 a 的值增加1,然后返回新值。也就是说,自增操作发生在返回值之前。

  3. a--(后缀自减):这种操作会返回变量 a 自减前的值,然后 a 的值减少1。也就是说,自减操作发生在返回值之后。

  4. --a(前缀自减):这种操作会先让 a 的值减少1,然后返回新值。也就是说,自减操作发生在返回值之前。

int a = 1;
int b = a++; // 后缀自增,b 被赋值为 1,然后 a 的值变为 2
int c = ++a; // 前缀自增,a 的值先变为 3,然后 c 被赋值为 3

int a = 5;
int b = a--; // 后缀自减,b 被赋值为 5,然后 a 的值变为 4
int c = --a; // 前缀自减,a 的值先变为 3,然后 c 被赋值为 3

a++;       等同于(a=a+1)

b--;          等同于(b=b-1)

int b=++a;相当于a=a+1再将b=a;

int b=a++;相当于b=a再将a=a+1。

请大家看看几个案例,就明白了:

int a=90;

a+=90;           (相当于a=a+90)

请问,a现在等于多少? 180

float b=89.7f;

b+=a;            (相当于b=b+a)

请问,b现在等于多少? 269.7

int a=56;int b=90;

a-=34;b%=a;       (相当于a=a-34,b=b%a)

System.out.println(b); 2

System.out.println(a); 22

----------------------------------------------------------------

二、关系(比较)运算符

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

比较运算符的结果都是boolean型,也就是要么是true.要么是false

请编写一个程序,该程序可以接收两个数(可以是整数,也可是小数)并判断两个数是大于?小于?还是等于?

程序代码:


	    import java.io.*;//载入IO流包
		public class numbijiao1{
		
			public static void main(String[] args){
				try{
					//输入流,从键盘接收数
					InputStreamReader isr = new InputStreamReader(System.in);
					BufferedReader br = new BufferedReader(isr);
					//给出提示
					System.out.println("请输入第一个数");
					//从控制台读取一行数据
					String a1 = br.readLine();
					System.out.println("请输入第二个数");
					String a2 = br.readLine();
					//把String转为float
					float num1 = Float.parseFloat(a1);
					float num2 = Float.parseFloat(a2);
					if(num1>num2){
						System.out.println("第一个大");
					}
					if(num1 == num2){
						System.out.println("相等");
					}
					if(num1<num2){
						System.out.println("第二个大");
					}
				}catch(Exception e){
					e.printStackTrace();
				}
			}
		}
	

三、逻辑运算符

  1. 逻辑与(AND) - &&

    • 符号:&&
    • 描述:当且仅当两个操作数都为 true 时,结果才为 true
    • 短路特性:如果第一个操作数为 false,则不会计算第二个操作数,因为整个表达式的结果已经确定为 false
  2. 逻辑或(OR) - ||

    • 符号:||
    • 描述:如果两个操作数中至少有一个为 true,则结果为 true
    • 短路特性:如果第一个操作数为 true,则不会计算第二个操作数,因为整个表达式的结果已经确定为 true
  3. 逻辑非(NOT) - !

    • 符号:!
    • 描述:反转操作数的布尔值。如果操作数为 true,则结果为 false;如果操作数为 false,则结果为 true
  4. 逻辑异或(XOR) - ^

    • 符号:^
    • 描述:如果两个操作数的布尔值不同,则结果为 true;如果相同,则结果为 false
  5. 条件运算符(三元运算符) - ?:

    • 符号:condition ? expr1 : expr2
    • 描述:如果 condition 为 true,则表达式的结果为 expr1 的值;否则,结果为 expr2 的值。
  6. 逻辑与(AND) - &

    • 符号:&
    • 描述:按位与操作,对两个整数操作数的对应位进行逻辑与操作。在逻辑表达式中不常用,但在位操作中非常有用。
  7. 逻辑或(OR) - |

    • 符号:|
    • 描述:按位或操作,对两个整数操作数的对应位进行逻辑或操作。在逻辑表达式中不常用,但在位操作中非常有用。

逻辑运算符通常用于控制程序的流程,如在 if 语句、while 循环、for 循环等中进行条件判断。短路逻辑运算符 &&|| 在编写条件表达式时非常有用,因为它们可以在不必要计算所有操作数的情况下提前确定表达式的结果。

三元运算符

1.结构:   (条件表达式)? 表达式1 : 表达式2

2.说明:
               a. 条件表达式的结果为boolean类型
                b.根据条件表达式真或假,决定执行表达式1,还是表达式2
                        如果表达式为true,则执行表达式1.
                        如果表达式为false,则执行表达式2

                c.表达式1和表达式2的要求是一致的

                d.三元运算符可以嵌套

3.凡是可以使用三元运算符的地方,都可以改写为if-else

  反之,不成立

四、位运算符

  1. 按位与(AND) - &

    • 描述:对两个整数的每一位进行逻辑与操作。如果两个相应的位都为1,则结果位为1;否则为0。
  2. 按位或(OR) - |

    • 描述:对两个整数的每一位进行逻辑或操作。如果两个相应的位中至少有一个为1,则结果位为1;否则为0。
  3. 按位异或(XOR) - ^

    • 描述:对两个整数的每一位进行逻辑异或操作。如果两个相应的位相同,则结果位为0;如果不同,则结果位为1。
  4. 按位非(NOT) - ~

    • 描述:对整数的每一位进行逻辑非操作。将所有1变为0,所有0变为1。
  5. 左移(Left Shift) - <<

    • 描述:将一个整数的所有位向左移动指定的位数。左边空出的位用0填充。
  6. 右移(Right Shift) - >>

    • 描述:将一个整数的所有位向右移动指定的位数。右边空出的位用符号位(最高位)的值填充。
  7. 无符号右移(Unsigned Right Shift) - >>>

    • 描述:将一个整数的所有位向右移动指定的位数,但不考虑符号位。右边空出的位用0填充。

五、赋值运算符

  • = 简单赋值
  • += 加后赋值
  • -= 减后赋值
  • *= 乘后赋值
  • /= 除后赋值
  • %= 取模后赋值
  • &= 位与后赋值
  • |= 位或后赋值
  • ^= 位异或后赋值
  • <<= 左移位后赋值
  • >>= 右移位后赋值
  • >>>= 无符号右移位后赋值

位运算符操作的都是整型的数据
<<:在一定范围内,每向左移1位,相当于*2
>>;在一定范围内,每向右移1位,相当于/2

Java中关于流程流程控制

其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即,
>顺序结构

        程序从上到下逐行地执行,中间没有任何判断和跳转              
>分支结构

        根据条件,选择性地执行某段代码
        有if..else和switch-case两种分支语句
>循环结构

        根据循环条件,重复性的执行某段代码
        有while、do...while、for三种循环语句
        注:JDK1.5提供了freach循环,方便的遍历集合、数组元素,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值