十分钟学会 Java的运算符,Scanner工具类,Random,if 判断语句结构,判断switch语句

运算符:

分类:

​ 算数运算符

​ 赋值运算符

​ 比较运算符|关系运算符

​ 逻辑运算符

​ 条件运算符

​ 位运算符

​ 操作数: 运算符左右两边的数

​ 表达式: 运算符连接操作数整体叫做表达式

​ 语句: 分号代表语句的结束

​ 单目|一元运算符: 操作数为1个 +号 ++ –

​ 双目|二元运算符: 操作数为2个 + - * / 加减乘除

​ 三目|三元运算符: 条件运算符

============================================================

算数运算符: +

​ 作用: 作为正负号使用

​ 正号(可省略)

public class Test01{
    public static void main(String[]args){
        int a = 3;
        System.out.println(+3);//+号可以省略
        System.out.println(3);
        /*
        以上代码结果输出是一样的,3前面的可以省略.
        */
    }
}

加法运算

代码演示:

public class Test01{
    public static void main(String[]args){
        int a = 3;
        int b = 5;
        System.out.println(a+b);//+号作为加法运算符出现,输出的结果为8,即3+5=8;
        /*
        以上代码中的加号是属于加法运算.
        */
    }
}

字符串的连接符

代码演示:

public class Test01{
    public static void main(String[]args){
        int a = 3;
        //如果+左右两边有字符串的出现"",+就是作为字符串的连接符使用,把两边的内容拼接成为一整个字符串使用
        System.out.println("a="+a);//+号作为字符串的拼接符出现,输出的结果为a=3;
        /*
        
        */
    }
}

-作为负号使用

减法运算

代码演示:

public class Test01{
    public static void main(String[]args){
        int a = 3;
        int b = 5;
        System.out.println(b-a);//-号作为减法运算符出现,输出的结果为2,即5-3=2;
        /*
        以上代码中的-号是属于减法运算.
        */
        //为a重新赋值
        a=-8;
        System.out.println("a="+a);//-号作为负号出现,输出的结果为a=-8;
    }
}

*乘以

代码演示:

public class Test01{
    public static void main(String[]args){
        int a = 3;
        int b = 5;
        System.out.println(a*b);//*号作为乘法运算符出现,输出的结果为15,即3*5=15;
    	}
    }
        /*
        以上代码中的*号是属于乘法运算.
        */
/除以

代码演示:

public class Test01{
    public static void main(String[]args){
        int a = 4;
        int b =8;
        System.out.println(b/a);//     *号作为除法运算符出现,输出的结果为2,即8/4=2;
    	}
    }
        /*
        以上代码中的/号是属于除法运算.
        */

% 模以 取模 求余数

代码演示:

public class Test01{
    public static void main(String[]args){
        int a = 3;
        int b =8;
        System.out.println(b%a);// %号作为求余数出现,输出的结果为2,即8/3,余数为2;
        //以上代码中的%号是属于求余数.
        System.out.println(a%b);//输出结果为3,第一个操作数小于第二个操作数,即a<b 3<8;
        //如果第一个操作数小于第二个操作数,结果就为第一个操作数
    	}
    }
       

============================================================

自增与自减 ++ –

/*
++ 自增  a++ ==> a=a+1;

-- 自减  a-- ==> a=a-1;

	分析:

	   ++,--操作自己

	   ++放在操作数的前面还是后面,都是自身+1

	   --放在操作数的前面还是后面,都是自身-1

	   ++,--操作别人
	   
	   ++--放在操作数的前面,先自身+1|-1,再去参与运算 
	   
	   ++--放在操作数的后面,先去参与运算,在自身+1-1
*/

代码演示:

public class Test01{
    public static void main(String[]args){
        int a = 3;
        int b = 5;
        a++;//不参与其他运算,++放在操作数的前面还是后面,都是自身+1
        System.out.println("a="+a);//  输出结果为4
        //运行完以上代码,这里a的值已经为4了.
        b = ++a+b;//涉及到参与运算,结果影响到最终b的值,++放在操作数的前面,先自身+1,再去参与运算 
        System.out.println("b="+b);//输出结果为10; 即5+5=10;
        int x = 5;
        int y = 8;
        y = x++ + y;//涉及到参与运算,结果影响到最终y的值,++放在操作数的后面,先参与运算,再自身+1;
        //以上代码经过运行,x++后,x的值已经为6;
        System.out.println("x="+x);//输出结果为 x=6;
        System.out.println("y="+y);//输出结果为 y=13,即5+8=13;
       //--同理
    }
}
/*总结一句话:单独一个操作数前面有++或者--,结果都是自身+1或者-1,如果参与运算了,那么需要看符号在操作数的前面还是后面,如果在前,那么自身+1和或者-1,然后参与运算,如果在操作数的后面,那么先参与运算,然后自身+1或者-1;
*/

============================================================

赋值运算符

代码演示:

public class Test01{
    public static void main(String[]args){
        int a = 4;//把4赋值给a;自右向左运算
        System.out.println(a);//输出结果为4;
    	}
    }
       基础赋值运算符 =  是java中唯一一个自右向左运算的符号,优先级最低
/*
扩展赋值运算符(算数运算符+基础赋值运算符)

			a+=b	a+=b; ==> a=a+b;
			
			a-=b	a-=b; ==> a=a-b;

			a*=b	a*=b; ==> a=a*b;

			a/=b	a/=b; ==> a=a/b;

			a%=b	a%=b; ==> a=a%b;
						
*/
public class Test01{
    public static void main(String[]args){
        int a = 4;
        int b = 6;
        a+=b;//a+=b	a+=b; ==> a=a+b;
        System.out.println("a="+a);//输出结果为a=10;即a=a+b ==>a=4+6;
    	}//-=,*=,/=,%=,同理
    }		
		/*
		推荐使用扩展赋值运算符
				优点:
					执行效率高
		*/

============================================================

关系运算符|比较运算符

/*
	> 大于
	< 小于
	>= 大于等于
	<= 小于等于
			只能比较基本数据类型 byte short char  int long float double
	== 等于     注意:在java中,=是赋值运算符,和==不一样;
	!= 不等于   
			基本数据类型的数据,引用数据类型的数据都可以比较是否相等
		
		最终的运算结果,都为boolean类型的值
*/
public class Test01{
    public static void main(String[]args){
        int a = 4;
        int b = 6;        
        System.out.println(a>b);//输出结果为false;
        System.out.println(a+3 != b-1); //输出结果为true;经过运算得到7不等于5,结果为true
    	}//关系运算符|比较运算符,最终的运算结果,都为boolean类型的值.
    }		

=======================================================================================

Java中的逻辑运算符

//	&  与
public class Test01{
    public static void main(String[]args){
        //一个false就是false,两个都为true,才为true      
        System.out.println(true&false);//输出结果为false;
        System.out.println(false&true);//输出结果为false;
        System.out.println(false&false);//输出结果为false;
        System.out.println(true&true;//输出结果为true;       
    	}
    }		
//   |  或
public class Test01{
    public static void main(String[]args){
        //一个为true就是true,两个都为false,才是false      
        System.out.println(true|false);//输出结果为true;
        System.out.println(false|true);//输出结果为true;       
        System.out.println(true|true);//输出结果为true;
        System.out.println(false|false);//输出结果为false;
    	}
    }		
			
//  !  非
public class Test01{
    public static void main(String[]args){
        //	取反  !true->false  !false->true     
        System.out.println(!true);//输出结果为false;
        System.out.println(!false);//输出结果为true; 
        }
    }			
//  ^  亦或
public class Test01{
    public static void main(String[]args){
        //   相同为false,不同为true  
        System.out.println(true^false);//输出结果为true;
        System.out.println(false^true);//输出结果为true;       
        System.out.println(true^true);//输出结果为false;
        System.out.println(false^false);//输出结果为false;
    	}
    }		
/*
短路: 如果第一个操作数就能够决定最终的结果,第二个操作数位置不执行

		&& 短路与    

		|| 短路或

		单|和单&与双||和双&& 判断的结果是一样,只是多了一个短语的作用.
		
		推荐使用短路内容,执行效率高.

		所有的逻辑运算符的操作数都为值为boolean类型的表达式
*/

============================================================

Java中的条件运算符

代码演示:

public class Test01{
    public static void main(String[]args){
        int a = 4;
        int b = 6;
     /*
     	格式:条件表达式 ? 值1 : 值2;条件表达式:值为boolean类型的表达式
     	
     	执行流程:
				
			1.条件表达式 ,最终会得到一个boolean结果

			2.如果结果为true,整个条件表达式最终的结果为值1

			3.如果结果为flase,最终结果为值2

			条件运算符最终肯定会得到一个结果
     */
        int m = a>b? a:b;
        //打印最大值    
         System.out.println("最大值为"+m);//输出结果:最大值为6;
    	}
    }		

============================================================

Java中的位运算符 (了解)

/*
	测试java中的位运算符(了解)
		先把操作数转为2进制,再去运算,得到结果转为十进制
		&  同一位置的两个数如果两个都为1才是1,一个为0就是0
		|  同一位置的两个数如果一个为1就是1,两个都为0才是0
		^  同一位置的两个数如果一相同为0,不同为1
		
		位移运算符
			>> 右移   先把第一个操作数转为2进制,向右移动第二个操作数个位数,想象原数据右侧有分水线,最终看左侧保留的二进制数据转为十进制
				/2  8>>3  --> 8/2^3  ==1
			<< 左移   先把第一个操作数转为2进制,向左移动第二个操作数个位数,空位补0,转为十进制
				*2   8<<3  --> 8*2^3 			
*/
public class Operator07{  
	
	public static void main(String[] args){ 
		System.out.println(2&3);   //得到的结果为2
		System.out.println(2|3);   //得到的结果为3
		System.out.println(2^3);   //得到的结果为1
		
		System.out.println(8>>3);   //得到的结果为1
		System.out.println(8>>2);   //得到的结果为2
		System.out.println(8<<3);   //得到的结果为64
		System.out.println(8<<1);   //得到的结果为16
		System.out.println(9>>2);   //得到的结果为2
运算符优先级口诀: 单目算数位关系,逻辑三目后赋值

============================================================

java中的Scanner:

/*注意:不要让你的类名与java中已有的类名一致
	数据类型有基本数据类型和引用数据类型
	基本数据类型:
		int a = 5;
		引用数据类型的使用:
			1).创建一个该类型的引用|变量 
				引用数据类型 变量名 = new 引用数据类型();  
			2) 使用功能
				变量名.功能名字();
				
		Scanner : 接收键盘输入
			1.导包   告诉 编译器Scanner类的位置
				import 包名+类名;
				位置: 类的上面导包
			2.创建一个Scanner类型的引用|变量
				Scanner sc=new Scanner(System.in);
			3.使用功能
			***	sc.nextInt(); 接收用户输入的int类型的数据
				sc.nextByte(); 接收用户输入的Byte类型的数据
				sc.nextShort();接收用户输入的Short类型的数据
				sc.nextLong();接收用户输入的Long类型的数据
			***	sc.nextDouble();接收用户输入的Double类型的数据
				sc.nextFloat();接收用户输入的Float类型的数据
				
			***	sc.next(); 接收用户输入的字符串类型的数据 
					从有效字符开始,遇到空格就无法接收,遇到enter结束功能
			***	sc.nextLine();  接收String类型数据,空格也接收,以行为单位接收
				
			4.关闭 
				sc.close(); 关闭资源 
					必须要等待全部使用完毕Scanner的功能才能关闭
*/
//导包  位置: 类的上面导包
import java.util.Scanner;
public class ScannerTest{
    public static void main(String[] args){ 
		//1.导包
		//2.创建一个Scanner类型的引用|变量
		Scanner sc=new Scanner(System.in);
		//3.使用功能
        //键盘接收数字
        System.out.println("请输入数字");    
		int i=sc.nextInt();	
        //打印键盘接收的整数型数字
		System.out.println(i);  
        //接收用户输入的字符串类型的数据 
         System.out.println("请输入文字");
        String str = sc.next();
        //打印键盘接收的字符串
        System.out.println(str);  
        sc.close(); //关闭资源 
					//必须要等待全部使用完毕Scanner的功能才能关闭,关闭后就算重新创建也没用
	} 
    
}

============================================================

java中的Random:

/*
java中的Random的作用是产生随机数
1.导包
		2.创建该类型的引用或者变量
		3.使用功能
			nextInt() 随机产生一个int范围内的整数
			nextInt(整数n) 产生一个 [0,n) 随机整数
			
			nextDouble() 随机产生[0,1)之间的随机小数
			
			
		公式:
			[0,max] ran.nextInt(max+1);
			[min,max] ran.nextInt(max-min+1)+min;
			[min,max) ran.nextInt(max-min)+min;
*/
//导包  
import java.util.Random;
public static void main(String[] args){ 
		//1.导包
		//2.创建该类型的引用或者变量
		Random ran = new Random();
		//3.使用功能
		int i=ran.nextInt();
		System.out.println(i);
		//随机生成0~19之间的整数; 公式:[0,max] ran.nextInt(max+1);
		int i2=ran.nextInt(20);
    	//打印生成的随机数
		System.out.println(i2);
		
		//随机生成[1,19]之间的随机整数
		i3=ran.nextInt(19)+1;  //公式:[min,max) ran.nextInt(max-min)+min;
		//打印生成的随机数
    	System.out.println(i3);
		//随机生成[5,10]之间的随机整数
		i4=ran.nextInt(10-5+1)+5;
    	//打印生成的随机数
		System.out.println(i4);
		
		
		//随机产生 [50,100] 判断这个数是否是3的倍数 
		int num =ran.nextInt(100-50+1)+50;//公式:[min,max] ran.nextInt(max-min+1)+min;
		//打印生成的随机数
    	System.out.println(num);
		System.out.println(num%3==0?"是3的倍数":"不是3的倍数");
	} 
	
}

=======================================================================================

Java中流程控制语句

/*
流程控制语句:
		顺序结构: 默认执行顺序 从上倒下,从左到右
		选择结构: 满足条件执行对应的语句体
		循环结构: 重复执行某些代码
		
		if..else 
		switch 
	
		单选泽|单分支:
			if(条件){
				语句体;
			}
			条件:是一个值为boolean类型的表达式
			满足条件,就执行{}中的语句体,不满足条件,跳过整个if结构
*/
public class IfTest{  
	//主方法是程序的入口,逐行执行
	public static void main(String[] args){ 
		//单选择:
		if(false){
            System.out.println("if语句结果为false,不执行此语句");
        }
			System.out.println("正常执行");
        if(true){
            System.out.println("if语句结果为true,执行此语句");
        }
        System.out.println("正常执行");
    }	
}		

/*
	双选泽|双分支:
			if(条件){
				语句体1;
			}else{
				语句体2;
			}
			执行流程:
				1.执行条件表达式,如果结果为true,就执行语句体1
				2.如果结果为false,就执行语句体2
*/
public class IfElseTest{  
	//主方法是程序的入口,逐行执行
	public static void main(String[] args){
		//双选
		String name="zhangsan";
		if("zhangsan".equals(name)){
			System.out.println("用户名正确");
		}else{
			System.out.println("用户名错误");
		}
	}	
}

			
/*		多选泽|多分支:
			if(条件1){
				语句体1;
			}else if(条件2){
				语句体2;
			}else if(){ 
				....
			}
			...
			else{
				语句体n;
			}
			执行流程:
				1.计算条件表达式1,如果结果为true,执行语句体1,如果结果为false

				2.执行条件表达式2,如果结果为true,执行语句体2,如果结果为false
				
				....
				
				如果以上条件都不满足,执行else中的语句体n
*/
//导包
import java.util.Scanner;
public class Test01{
	//写主方法
	public static void main(String[]args){
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入小明的一门成绩");
		int num = sc.nextInt();
		if(num==100){
			System.out.println("爸爸给你买个iphoneX");
		}else if (num>=90&&num<100){
			System.out.println("爸爸给你买个iphone8");
		}else if(num>=60&&num<90){
			System.out.println("别灰心,爸爸给你买各种学习资料");
		}else if(num>0&&num<60){
			System.out.println("买学习资料,上补习班,各种爱的教育,如果下次还不及格,小心皮鞭沾凉水");
		}else{
			System.out.println("我看你是快了!!!");
		}
		sc.close();
	}
}

/*		
		只要{}中的语句体只有一句的时候,前后的{}可以省略
		
		if与条件运算符之间的区别:
			if可以没有结果,条件运算符肯定有一个结果
			if可以同时对多个条件进行判断
			结果复杂推荐使用if,如果结构简单,推荐使用条件运算符
*/

=======================================================================================

java中的switch语句

/*
swtich 语句:定值判断
	
		switch(表达式){
			case 值1:
				语句体1;
				break;
			case 值2:
				语句体2;
				break;
			...
			default:
				语句体n;
				break;
		}
		
		执行流程:
			1.计算表达式,得到一个结果,值
			2.第一步算出的结果值与case后的值进行判断,如果相等,就执行对应的语句体,如果不相等,就继续向下判断
			3.如果执行了语句体,后如果有break,结束整个switch语句,如果没有break会发生case穿透
			4.如果以上所有case后的值都不满足条件,执行default(接盘侠 else)
			
		表达式: 只能为byte,short,char,int,String(jdk1.7之后),枚举(jdk1.5)  seo 搜索引擎优化
		case穿透: 满足条件的语句体执行之后,如果没有break,下面的case无论是否满足条件,都会执行他们的语句体,直到遇到下一个break或switch的结果而结束
		default:位置可以任意改变,break可以省略,但是如果写在switch最后,省略break没有影响,其他位置会发生case穿透
		
		if和switch区别:
			1.if可以做区间判断,可以做定定值判断
			2.switch只能做定值判断
			能使用switch地方都能使用if
*/
public class SwitchTest01{  
	//主方法是程序的入口,逐行执行
	public static void main(String[] args){ 
	String flag="红灯";
		switch(flag){
			case "红灯":
				System.out.println("红灯停");
				break;
			case "黄灯":
				System.out.println("黄灯等一等");
				break;
			case "绿灯":
				System.out.println("绿灯行");
				break;
			default:
				System.out.println("没有这种颜色的灯!!!");
				break;
		}
	}
}
		
		
case穿透
public class SwitchTest01{  
	//主方法是程序的入口,逐行执行
	public static void main(String[] args){ 
		//case穿透: 满足条件的语句体执行之后,如果没有break,下面的case无论是否满足条件,都会执行他们的语			句体,直到遇到下一个break或switch的结果而结束
		String flag="黄灯";
        switch(flag){
			case "红灯":
				System.out.println("红灯停");
			case "黄灯":
				System.out.println("黄灯等一等");
			case "绿灯":
				System.out.println("绿灯行");
				break;
			default:
				System.out.println("没有这种颜色的灯,沙雕!!!");
		
		}
	}
}
/** * @project: WebProjectUtil * @class: NumberUtil * @describe: 此工具类用来处理数字方面的逻辑, * 如返回指定位数的随机数字、Double的加减乘除精确运算、指定位数数字用“0”补齐 * @autho: Administrator * @date: 2013-6-7 下午02:26:27 * @alter: Administrator * @alterDate: 2013-6-7 下午02:26:27 * @alterRemark: * @version V1.0 */ public class NumberUtil { private static final int DEF_DIV_SCALE = 2; /** * @return 返回12位随机数 */ public static String randomNumber() { } /** * @param parm * @return 返回指定位数随机数 */ public static String randomNumber(int parm) { } /** * * 两个Double数相加 * * @param v1 * @param v2 * @return Double */ public static Double add(Double v1, Double v2) { } /** * * 两个Double数相减 * * @param v1 * @param v2 * @return Double */ public static Double sub(Double v1, Double v2) { } /** * * 两个Double数相乘 * * @param v1 * @param v2 * @return Double */ public static Double mul(Double v1, Double v2) { } /** * * 两个Double数相除 * * @param v1 * @param v2 * @return Double */ public static Double div(Double v1, Double v2) { } /** * * 两个Double数相除,并保留scale位小数 * * @param v1 * @param v2 * @param scale * @return Double */ public static Double div(Double v1, Double v2, int scale) { } /** * 返回指定Double的负数 * @param v1 * @return */ public static Double neg(Double v1) { /** * @Title: toFixdLengthString * @Description: 将字符串用符号填充位数 * @param str 源字符串 * @param fixdlenth 位数 * @return String * @throws */ public static String toFixdLengthString(String str, int fixdlenth) { } /** * @Title: toFixdLengthString * @Description: 将数字用“0”填充位数 * @param num * @param fixdlenth * @return String * @throws */ public static String toFixdLengthString(int num, int fixdlenth) { } /** * @Title: generateSpaceString * @Description: 得到指定位数占位符 * @param length * @return String * @throws */ public static String generateSpaceString(int length) { } /** * @Title: generateZeroString * @Description: 得到指定位数的“0”的占位符 * @param length * @return String * @throws */ public static String generateZeroString(int length) { } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值