运算符

一、数值型字面常量值表现形式

整型
进制组成表现形式
二进制由0,1组成以0b开头
八进制由0~7组成以0开头
十进制由0~9组成默认十进制
十六进制由0~9,a~f组成以0x开头

进制转换方法:

其他进制转十进制: 从后往前,从最后一位开始*当前的进制数^0(次方从0开始,每次加一),最后求和。

十进制转为其他进制:使用这个数一直除以进制数,然后看余数。

浮点型

整数位为0的时候可以将0省略;

科学计数法表示:例如:1.23e-2 (其中e=10,e-2表示10的负二次方)

``` public class Demo01{ public static void main(String[] args){ System.out.println(0b1010); System.out.println(010); System.out.println(0x15); System.out.println(1.23e2); System.out.println(1.23e-2); } } ```

二、转义字符

转义字符从\开始   格式为:\+要转义的字符

public class ZhuanYi{
	public static void main(String[] args){
		System.out.println('\'');
		System.out.println("\"");
		System.out.println("\\");
		
		System.out.println("shsxtverygood上海");
		System.out.println("shsxtverygood\b上海");   // "\b" 退格 
		System.out.println("shsxtverygood上海\b");
		System.out.println("shsxtverygood\n上海");    // "\n"换行
		System.out.println("shsxtverygood\r上海");	// "\r" 光标回到行首
		System.out.println("shsxtverygood上海\r~");		
}

结果如下

edpWy8.png

三、运算符

  • 运算符可以分为如下几种
  • 算术运算符
  • 关系运算符
  • 位运算符
  • 逻辑运算符
  • 赋值运算符
  • 条件运算符
1)算术运算符

①单目:+(取正)、-(取负)、++(自增)、- -(自减)

②双目:+、-、*、/、%(取余)

注:“+”还可以作为字符串连接符,当+左右两边如果一旦有字符串的出现,就作为字符串的连接符使用。

public class Test {
  public static void main(String[] args) {
     int a = 10;
     int b = 20;
     int c = 30;
     int d = 40;
     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) );
     System.out.println("c % a = " + (c % a) );
     System.out.println("a++   = " +  (a++) );
     System.out.println("a--   = " +  (a--) );
     // 查看  d++ 与 ++d 的不同
     System.out.println("d++   = " +  (d++) );
     System.out.println("++d   = " +  (++d) );
     int i=3;
	 int result=i++ + ++i + i++ + i++ + ++i;
	 System.out.println(i);   //8
	 System.out.println(result);   //27 
  }
}
2)赋值运算符

基本赋值运算符:    ' = ',    java中唯一一个自右向左运算的符号

扩展赋值运算符(算数运算符+基本赋值运算符):+= 、-= 、*=、 /= 、%=

例如:a+=b-> a=a+b

优点:

1.提高执行效率

2.自动做强制类型转换

缺点:不直观

public class Operator05{	
	public static void main(String[] args){
		int zhang=99;
		int sum=0;
		sum=sum+zhang;
		System.out.println(sum);
		
		short s1=100;
		//s1=s1+1;   //报错,数据类型问题
		s1++;
		s1+=5;
		System.out.println(s1);
	}
}
3)关系运算符

几种运算符 ==,!=,>,>=,<,<=

注: 最终的结果肯定为boolean类型的结果

public class Operator06{
	public static void main(String[] args){
		char ch1='a';
		char ch2='b';
		System.out.println(ch1<=ch2);		//true
		
		String name1="张三";
		String name2="李四";
		System.out.println(name1!= name2);		//true
		
		System.out.println(ch1+1 != ch2);		//false
	}
}
4)逻辑运算符

操作数要求都要是值为boolean类型的表达式

&"与" :两个都为true才是true,一个为false就是false

|"或" :一个为true就是true,两个都是false才是false

!"非" :取反 !true-->false !false-->true

^"异或" :相同为false,不同为true

注:建议使用短路“与”或“或”

public class Operator07{
	public static void main(String[] args){
		int a=10;
		int b=9;
		System.out.println(a>b && ++b>a);  //false
		System.out.println("a="+a+",b="+b);  //a=10,b=10
		System.out.println(a<b | b<a);    //false
		System.out.println(!(a>b ^ a>9)); //false
	}
}
4)条件运算符

格式:条件表达式 ? 值1 : 值2;

1)执行条件表达式-->值为boolean类型的表达式

2)如果为true,最终的结果取值1

3)如果为false,最终的结果取值2

public class Operator08{
	public static void main(String[] args){
		int a=5;
		String str=a>0? "a>0" : "a<=0";
		System.out.println(str);    	//a>0
	}
}
5)位运算符

应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型

符号 用法
&同一位置的两个数,一个0就是0,两个都1才是1
|同一位置的两个数,一个为1就是1,两个都为0才是0
^相同为0,不同为1
<<二进制的操作数,向左移动第二个操作数的位数,空余的位置补0
>>二进制的操作数,向右移动第二个操作数的位数,分水岭右侧的结果不要,只保留左侧

运算符的优先级: 单目算数位关系,逻辑三目后赋值

public class Operator09{
	public static void main(String[] args){
		System.out.println(3&2);		//2
		System.out.println(3|2);      //3
		System.out.println(3^2);		//1
		
		System.out.println(9>>2);  		//2
		System.out.println(8<<2);    //32
	}
}

左移运算符便捷计算方法:第一个操作数*2的第二个操作数次方

右移运算符便捷计算方法:第一个操作数/2的第二个操作数次方

四、引用数据类型

步骤:

1.创建某个类型的变量|引用

   引用数据类型 变量名 = new 引用数据类型();

   Scanner sc=new Scanner(); ---sc就是scanner类型的变量

2.使用功能

   变量.功能名字();

1)Scanner类:接收键盘输入的内容

1.导包:指明Scanner类的位置

   import +包名+类名; import java.util.Scanner;

   位置:类的上面

2.创建某个类型的变量|引用

   Scanner sc=new Scanner();

3.引用.功能名字();

   next() 接收字符串 结束功能:enter,不会接收enter

   从有效字符开始接收,遇到空格,tab不接受了,但是必须遇到enter结束功能

   nextLine() 只要没有换行,都能接收 遇到enter结束功能,接收enter

   nextInt()

   nextByte()

   nextShort()

   nextDouble()....

4.引用.close();

   注意:一定在一个类中使用完毕以后再关闭,否则重新开启也无法使用

import java.util.Scanner;
public class Scanner10{
	public static void main(String[] args){
		//1.导包
		//2.创建某个类型的变量|引用
		Scanner sc=new Scanner(System.in); 
		//3.使用功能
		String s=sc.next();
		System.out.println(s);
		
		//处理enter问题
		sc.nextLine(); 
		
		String s2=sc.nextLine();
		System.out.println(s2);
		
		int i=sc.nextInt();
		System.out.println(i);
		
		double d=sc.nextDouble();
		System.out.println(d);
		
		sc.close();
	}
}
2)Random:产生随机数

1.导包 import java.util.Random;

2.创建Random类型的变量|引用

3.引用.功能名字()

   nextInt() 产生一个int范围内的随机整数

   nextInt(n) 产生0~n随机整数 [0,n)

    [0,max] 引用.nextInt(max+1)

    [min,max] 引用.nextInt(max-min+1)+min

   nextDouble() 产生[0,1)之间的随机小数

import java.util.Random;
public class Random11{
	public static void main(String[] args){
		//1.导包
		//2.创建Random类型的变量|引用
		Random ran=new Random();
		//3.使用功能
		int i=ran.nextInt();
		//[0,5]
		i=ran.nextInt(6);
		System.out.println(i);
		
		//[3,5]   
		i=ran.nextInt(5-3+1)+3;
		System.out.println(i);
		
		double d=ran.nextDouble()+3;
		System.out.println(d);
	}
}

五、流程控制语句

顺序结构:从上倒下,从左到右

选择结构:根据选择,决定执行的内容

循环结构:重复执行某些内容

1)if语句

if..else

单分支|单选泽

   if(条件表达式){

   语句体;

   }

注:

   条件表达式必须值为boolean类型的表达式

   如果条件表达式结果为false,就不执行跳过整个if结构

   如果条件表达式结果为true,执行{}中的语句体

双分支|双选择

   if(条件表达式){

    语句体1;

   }else{

    语句体2;

   }

多分支|多选择:

   if(条件表达式1){

    语句体1;

    }else if(条件表达式2){

    语句体2;

    }else if(条件表达式3){

    语句体3;

    }

    ....

    else{

    以上条件都不满足执行的内容

    }

public class IfDemo12{
	
	public static void main(String[] args){
		//单选
		if(false)
			System.out.println("现在5点了,还有半个小时就下课了!!!哈哈哈~~~");
		
		
		System.out.println("if语句结束以后");
		
		//双选
		int a=0;
		if(a>0){
			System.out.println("a>0");
		}else{
			if(a==0){
				System.out.println("a=0");
			}else{
				System.out.println("a<0");
			}
		}
		//多选择
		if(a>0)
			System.out.println("a>0");
		else if(a==0)
			System.out.println("a=0");
		else
			System.out.println("a<0");
		
	}
	
}
2)switch语句

switch(表达式){

   case 值1:

    语句体1;

    break;

   case 值2:

    语句体2;

    break;

    ....

   default:

    语句体n;

    break;

   }

case:拿表达式的结果与case后的值进行判断,如果相同,执行对应的语句体;

break:结束这个switch语句,如果没有break会发生case穿透

default: else作用一致,以上case都不满足条件,执行default中的语句体 可以在switch语句中的任何位置,改变位置注意break的问题

public class SwitchDemo14{
	public static void main(String[] args){
		String str="紫灯";
		/*
		switch(str){
			case "红灯":
				System.out.println("红灯停!");
				break;
			case "绿灯":
				System.out.println("绿灯行!");
				break;
			case "黄灯":
				System.out.println("黄灯等一等!");
				break;
			default:
				System.out.println("是不是傻!!!");
				break;
		}*/
	
		switch(str){
			default:
				System.out.println("是不是傻!!!");
				break;
			case "红灯":
				System.out.println("红灯停!");
			case "绿灯":
				System.out.println("绿灯行!");
			case "黄灯":
				System.out.println("黄灯等一等!");
				break;
			
		}
		
		int b=100;
		switch(b){
			case 1:
				System.out.println("1");
				break;
			case 10:
				System.out.println("10");
				break;
			case 100:
				System.out.println("100");
				break;
			
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值