javaSE学习笔记day03

java 运算符

  • 算术运算符

  • 关系运算符

  • 位运算符

  • 逻辑运算符

  • 赋值运算符

  • 三目运算

  • 其他

算术运算符

做运算时,将结果的数据类型提升

大范围的数据类型不能向小范围的数据类型转换。

A = 10,B = 20

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9035F5z5-1676432787790)(D:\前锋学习笔记\笔记\image-20230202083947932.png)]

自增自减运算符

	// 后自增
		int a = 1;		
		System.out.println(a++); // 1
		// 前自增加
		int b = 1;		
		System.out.println(++b); // 2
		// 后自减
		int a1 = 1;		
		System.out.println(a1--); // 1
		// 前自减
		int b1 = 1;
		System.out.println(--b1); // 0

		int a = 5;//定义一个变量;
        int b = 5;
        int x = 2*++a;
        int y = 2*b++;
     System.out.println("自增运算符前缀运算后a="+a+",x="+x);
     System.out.println("自增运算符后缀运算后b="+b+",y="+y);
		// 自增运算符前缀运算后a=6,x=12
		// 自增运算符后缀运算后b=6,y=10

关系运算符

表格中的实例整数变量A的值为10,变量B的值为20

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kdCUQud9-1676432787791)(D:\前锋学习笔记\笔记\image-20230202092709603.png)]

int a = 10;
int b = 20;
System.out.println("a == b = " + (a == b) );
System.out.println("a != b = " + (a != b) );
System.out.println("a > b = " + (a > b) );
System.out.println("a < b = " + (a < b) );
System.out.println("b >= a = " + (b >= a) );
System.out.println("b <= a = " + (b <= a) );

输出结果:
a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false

位运算

Java定义了位运算,应用于整数类型int 长整数型long 短整型short 字符型char 和 字节型byte类型

a = 60 b = 13

10A = 0011 1100
   B = 0000 1101
  --------------
 A&B = 1100 1100
  相同就是1不同为0A = 0011 1100
     B = 0000 1101
  --------------
 A | B = 0011 11011的就为1
 
     A = 0011 1100
     B = 0000 1101
     --------------
 A ^ B = 0011 0001
    不同为1,相同为0
    
   ~A = 1100 0011
 

// 取余数是用来判断奇偶性

逻辑运算符

做逻辑运算

&(和/与)

​ 语法 : boolean 变量 = 关系表达式1 & 关系表达式2;

​ 先执行关系表达式1再去判断关系表达式2,然后判断两个结果,如果两个结果都为true,那么整体结果就是true.否则是false.

​ 总结:全对才对,一错就错。

| (或)

​ 语法 : boolean 变量 = 关系表达式1 & 关系表达式2;

​ 总结:全错才错,一错就错。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i9OIMDHu-1676432787792)(D:\前锋学习笔记\笔记\image-20230202101604299.png)]

&&(短路,逻辑与) 与 & 的区别。

​ &&左边对才执行右,不对就不执行右边

​ || 左边有对就不执行右边,左边不对再执行右边。

​ !(非)作用:将布尔表达式的结果取反

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HqW25DVD-1676432787792)(D:\前锋学习笔记\笔记\image-20230202102635492.png)]

		boolean a = true;
		boolean b = false;
		System.out.println(a&&b);// fales
		System.out.println(a||b);// true
		System.out.println(!a);// fales
		System.out.println(!b);//true

❤短路逻辑运算符

当使用与逻辑运算符,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果必为false,这时候就不会判断第二操作了。

         int a = 5;
		boolean b = (a<4)&&(a++<10);
		System.out.println(b);// false
		System.out.println(a);// 5

赋值运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ywoIluoz-1676432787792)(D:\前锋学习笔记\笔记\image-20230202111136291.png)]

+=默认进行了强制类型转换

强制转换:大的数据类型向小的数据类型需要强制转换.

❤三目运算—条件运算符 (?😃

数据类型 变量名 = 布尔表达式 ?true 执行此处 :false执行此处;

嵌套使用

条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。

		int a,b;
		a = 10;
		// 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
		b = (a == 1) ? 20 : 30;
		System.out.println(b);
		// 如果 a 等于 10 成立,则设置 b 为 20,否则为30
		b = (a == 10)? 20:30;
		System.out.println(b);

instanceof 运算符

该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

instanceof运算符使用格式如下:

( Object reference variable ) instanceof)(class/interface type)
class Vehicle {}
 
public class Car extends Vehicle {
   public static void main(String[] args){
      Vehicle a = new Car();
      boolean result =  a instanceof Car;
      System.out.println( result);
   }
}

:true

## Java运算符优先级

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SjuiDMfy-1676432787793)(D:\前锋学习笔记\笔记\image-20230202114205472.png)]

== 判断两个数据是否相等。

Java流程控制语句 和 循环结构

Java 循环结构 - for, while 及 do…while

while 循环

while(布尔表达式){
	// 循环体
}

public class Test {
   public static void main(String[] args) {
      int x = 10;
      while( x < 20 ) {
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
      }
   }
}

do…while 循环

对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。

do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。

do {
       //代码语句
}while(布尔表达式);

public class Test {
   public static void main(String[] args){
      int x = 10;
 
      do{
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
      }while( x < 20 );
   }
}
## 变量交换的三种方法式
// 方法一:
		// int temp;
		// temp = num1;
		// num1 = num2;
		// num2 = temp;

		// 方法二:
		// num1 = num1 + num2; num1 = 3+5 =8
		// num2 = num1 - num2; num2 = 8 - 5
		// num1 = num1 - num2; num1 = 8 - 3
    
		// 法三:异或,使用位运算符
		// num1 = num1 ^ num2;
		// num2 = num1 ^ num2;
		// num1 = num1 ^ num2;

for 循环(重要)

虽然所有循环结构都可以用 while 或者 do…while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。

for(初始化; 布尔表达式; 更新) {
    //循环体
}
执行流程
    1.执行初始值
    2.判断表达式
    3.如果结果为true,向下执行循环体
    4.后再向上执行迭代
    5.后再判断,直到判断为false,跳出for循环

变量的作用域

变量都有它的作用范围,离他最近范围的{}内有效。

for循环的特点Duplicate:重复

  • 最先执行初始化步骤,可以声明一种类型,但可以初始化一个或多个循环控制变量,也可以空语句。

  • 然后,检测布尔表达式的值,如果为true,循环体被执行,如果为false,循环终止,开始执行循环体后面的语句。

  • 执行一次循环后,更新循环控制变量。

  • 再次检测布尔表达式,循环执行上面的过程。

    java增强for循环

    for(声明语句 : 表达式)
    {
       //代码句子
    }
    

    **声明语句:**声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

    **表达式:**表达式是要访问的数组名,或者是返回值为数组的方法。

    	int [] numbers = {10, 20, 30, 40, 50};
          for(int x : numbers ){
             System.out.print( x );
             System.out.print(",");
          }
    

双重for循环

// 外层for控制行数
// nei'c
public static void main(String[] args) {
		for (int i = 0; i < 4; i++) {
			for (int j = 0; j < 8; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}

break关键字

break主要用在循环语句或者switch 语句中,用来跳出整个语句块。

break跳出最里层的循环,并且继续执行循环下一个语句下的语句。

break:可以用来终端循环。终断当前循环。

public class Test {
   public static void main(String[] args) {
      int [] numbers = {10, 20, 30, 40, 50};
 
      for(int x : numbers ) {
         // x 等于 30 时跳出循环
         if( x == 30 ) {
            break;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

contiune 关键字

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代,只能在循环中使用终端这次循环继续执行下次循环。

在 for 循环中,continue 语句使程序立即跳转到更新语句。

在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

public class Test {
   public static void main(String[] args) {
      int [] numbers = {10, 20, 30, 40, 50};
 
      for(int x : numbers ) {
         if( x == 30 ) {
        continue;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

Java 条件语句 - if…else

一个if语句包含一个布尔表达式和一条或多条语句。

语法

if(布尔表达式)
{
   //如果布尔表达式为true将执行的语句
}

public class Test {
 
   public static void main(String args[]){
      int x = 10;
 
      if( x < 20 ){
         System.out.print("这是 if 语句");
      }
   }
}

if…else语句

if(布尔表达式){
   //如果布尔表达式的值为true
}else{
   //如果布尔表达式的值为false
}


public class Test {
 
   public static void main(String args[]){
      int x = 30;
 
      if( x < 20 ){
         System.out.print("这是 if 语句");
      }else{
         System.out.print("这是 else 语句");
      }
   }
}

if…else if…else 语句

if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。

使用 if,else if,else 语句的时候,需要注意下面几点:

  • if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。

  • if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。

  • 一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。

    if(布尔表达式 1){
       //如果布尔表达式 1的值为true执行代码
    }else if(布尔表达式 2){
       //如果布尔表达式 2的值为true执行代码
    }else if(布尔表达式 3){
       //如果布尔表达式 3的值为true执行代码
    }else {
       //如果以上布尔表达式都不为true执行代码
    }
    
    public class Test {
       public static void main(String args[]){
          int x = 30;
     
          if( x == 10 ){
             System.out.print("Value of X is 10");
          }else if( x == 20 ){
             System.out.print("Value of X is 20");
          }else if( x == 30 ){
             System.out.print("Value of X is 30");
          }else{
             System.out.print("这是 else 语句");
          }
       }
    }
    

    嵌套的 if…else 语句

    if(布尔表达式 1){
       如果布尔表达式 1的值为true执行代码
       if(布尔表达式 2){
          如果布尔表达式 2的值为true执行代码
       }
    }
    
    public class Test {
     
       public static void main(String args[]){
          int x = 30;
          int y = 10;
     
          if( x == 30 ){
             if( y == 10 ){
                 System.out.print("X = 30 and Y = 10");
              }
           }
        }
    }
    

    switch case 语句

    switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

    switch后跟 byte,short,int,char,String

    case 后的值,类型要与switch后的值一致后面是冒号。

    没有break会击穿case,有会打断switch结果

    switch(expression){
        case value :
           //语句
           break; //可选
        case value :
           //语句
           break; //可选
        //你可以有任意数量的case语句
        default : //可选
           //语句
    }
    

    switch case 语句有如下规则:

    • switch 语句中的变量类型可以是: byte、short、int 或者 char ,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。

    • switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。

    • case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。

    • 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。

    • 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。

    • switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。

    public class Test {
       public static void main(String args[]){
          //char grade = args[0].charAt(0);
          char grade = 'C';
     
          switch(grade)
          {
             case 'A' :
                System.out.println("优秀"); 
                break;
             case 'B' :
             case 'C' :
                System.out.println("良好");
                break;
             case 'D' :
                System.out.println("及格");
                break;
             case 'F' :
                System.out.println("你需要再努力努力");
                break;
             default :
                System.out.println("未知等级");
          }
          System.out.println("你的等级是 " + grade);
       }
    }
    

    作业

    输出最大值


    int x = 1;

    int y = 2;

    int z = 3;

    int max = (x > y ? x : y) > z ? (x > y ? x : y) : z;


    1.代码重复两遍

    2.背单词

    3.记笔记

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二手Java程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值