day03-java基础-常见运算符

本文介绍了编程中的算术、逻辑、位运算符,包括二进制、八进制、十进制和十六进制之间的转换。详细阐述了补码、反码和源码的概念,以及流程控制语句如if、switch、for、while的用法,还讲解了break和continue在循环中的作用。内容涵盖了编程基础的重要知识点。
摘要由CSDN通过智能技术生成

运算符

  • 算术运算符:+,-,*,%

  • 关系运算符:>= <= == !=

  • 逻辑运算符:与&&(表示并且关系 ) 或||(表示或者的关系 只有有一个成立就是成立) 非(表示否定取反)
    在这里插入图片描述

  • 自加和自减运算符:++a,a++,–a,a–
    在这里插入图片描述

  • 三目运算符:格式:表达式?值1:值2 //相当于if语句表示表达式成立把值1赋给它,反之赋值值2

  • 赋值运算符:= //将右侧的值赋值给左侧 += // a+=10 <==> a = a+10
    在这里插入图片描述

  • 移位运算符:
    & 按位与运算 ,运算原则:相同二进制数位上数值为1,结果为1,否则结果为0;
    | 按位或运算,运算原则:相同二进制数位上数值为0,结果为0,否则结果为1;
    ^ 按位异或,运算原则:参与运算的两个数相应位相同则结果为0,异号则为1;
    ~ 按位取反,运算原则:二进制数位上0变1,1变0;
    左移操作“<<”:将运算数的二进制码整体左移指定位数,左移之后的空使用“0”来补充,移出去的二进制数忽略不计。
    右移操作“>>”:将运算数的二进制码整体右移指定位数,右移之后的空使用“符号位”来补充。移出去的二进制数忽略不计。若是正数使用“0”补充;若是负数使用“1”补充;

注:在编程中建议使用短路与和短路或

进制(位运算符)

  • 二进制:每一个二进制数位用0,1 ;满2进1。
  • 八进制:每一个八进制数位用0,1,2,3,4,5,6,7 ;满8进1。用0开头表示。
  • 十进制:每一个十进制数位用0,1,2,3,4,5,6,7 ,8,9 ;满10进1。 满10进1。
  • 十六进制:每一个十六进制数位用0,1,2,3,4,5,6,7 ,8,9,A,B,C,D,E,F ;满16进1。 满16进1.。用0x开头表示
    十进制转二进制:十进制转成二进制—>除以2倒取余数
    在这里插入图片描述
    二进制数转十进制数:二进制转成十进制—>按2的幂数展开并累加
    在这里插入图片描述

补码反码和源码

  • 正数:

将一个十进制正整数转换二进制数(带符号位), 即是这个数的原码.

  • 负数:

先计算该负数绝对值的二进制。之后对其每个数"取反,然后加一。

比如-32

第一步:32(10)= 00100000(2)

第二步:求反:11011111

第三步:加1:11100000

  • 反码:

由来: 用带符号位的原码进行乘除运算时结果正确,而在加减运算的时候就出现了问题,如: 用十进制表示:1 + (-1) = 0,

但用二进制表示:00000001 + 10000001 = 10000010, 将结果换算成十进制数也就是-2.

于是就发现问题出现在带符号位的负数身上为了解决二进制中正负数的加减问题,人们就在原码的基础上发明了反码,

反码的表示方式是用来处理负数的,符号位置不变,其余位置相反.

反码的取值空间和原码相同且一一对应.
计算方式:
在这里插入图片描述

  • 原码转反码: 符号位不变,其余位取反. 如: -6的原码为:10000110, 反码为11111001.

  • 反码转补码: 直接补1即可. 如: -5的反码为:11111010, 补码为11111011.

  • 原码转补码: 符号位不变,其余各位取反后补1, 也就是反码补1.

  • 补码转原码: 退1后,除符号位各位取反.或先计算该负数绝对值的二进制。之后对其每个数“取反”,然后加一。

流程控制语句

if条件语句

	|-- 顺序
	从左到右,从上而下执行
|-- 选择
	|-- 单分支
		if (条件) {
			// 条件满足,则执行{}内的代码
		}
		|-- 双分支
		if(condition) {
			// 条件满足,则执行if内的代码
		} else {
			// 条件不满足的情况下,执行else中的代码 	
		}

	|-- 多(三)分支
		if (condition1) {
			// 条件1满足,则执行这儿的代码
		} else if (condition2) {
			// 条件2满足,则执行这儿的代码
		}....
		 
		 else if (conditionN) {
			// 条件N满足,则执行这儿的代码
		} else {
			// 剩余的所有条件
		}

switch语句

switch的格式:

switch (switch表达式) {
 case1 : 语句1; break;
  case2 : 语句2; break; ...
   caseN : 语句N; break;
    default : 默认情况下执行的语句; }

switch语句遵从下述规则:

  1. switch表达式必须能计算出一个char、byte、short、int或者String型值,并且必须总是要用括
    号括住。
  2. 值1、值2、…、值N必须与switch表达式的值具有相同的数据类型,且是确切的值不能是变
    量。
  3. 当switch表达式的值与case语句的值相匹配时,执行从该case开始的语句,直到遇到一个
    break语句或到达该switch语句的结束。
  4. 默认是可选的,当没有一个给出的case与switch表达式匹配时,用来执行该操作。
  5. 关键字break是可选的。break语句会立即终止switch语句。
    if和switch的区别
  • if可以用于判断数值,也可以判断区间,只要运算结果是boolean类型,都可以进行判断。
  • switch用于对固定的几个值,进行判断。判断的值的类型有限

注释:不要忘记在需要的时候使用break语句。一旦匹配其中一个case,就从匹配的case处开始执
行,直到遇到break语句或到达switch语句的结束。这种现象称为落空行为。

for循环语句

for循环格式:

for (初始化; 继续条件; 迭代) { 循环体语句; }

// 求0~100的和

public class TestSum {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            sum += i;
        }
        System.out.println("0~100的和:"+sum);
    }
}


whlie循环语句

while语法结构:
在这里插入图片描述
案例:预测未来学费

public class FutureTuition { 
public static void main(String[] args)
 { double tuition = 10000;
  int year = 1;
   while (tuition < 20000) { tuition = tuition * 1.07; 
   year++; 
   }System.out.println("Tuition will be doubled in " + year + " years"); } }

break和continue语句

  • break:终止该层循环

break是终止循环,即在程序中遇到break,那么break所属的循环将结束。
for (int x=0; x<3 ;x++ ) { if(x==1) break; System.out.println("x="+x); }

  • continue:跳过该层循环

continue是结束本次循环,继续下次循环。循环是不会结束的。
for (int x=0; x<10 ;x++ ) { if(x%2==0) continue; System.out.println("x="+x); }

  • 在多层嵌套循环中,终止/跳过标签标记的那层循环的执行;break <标签> 或 continue <标签>
outer:for (int x=0; x<3 ;x++ ) { inner:for (int y=0; y<4 ;y++ ) { System.out.println("x="+x); break outer; } }outer:for (int x=0; x<3 ;x++ ) { inner:for (int y=0; y<4 ;y++ ) { System.out.println("x="+x); continue outer; } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值