package com.easy;

public class Easy1 {
   
	public static void main(String[] args) {
   
// System.out.println("Java So Easy!");
		
		//声明变量 类型 变量名(标识符)
		//程序员自定义的名字都叫做标识符
		//由 字母、数字、_ 、$ 组成
		//不能以数字开头
		//标识符不能是关键字
		//标识符起名要见名知意
		//标识符尽量使用驼峰命名法
		//包名全部小写,常量名全部大写
// int a;
		//赋值 首次赋值-变量初始化
		//未初始化的变量不可被调用
		//指定类型的变量只能赋值对应类型的值
// a = 12;
		//变量可以多次赋值,但是不能重新声明
// System.out.println(1 > 2 ? 2.3 : 6);
// double b = 12;//其实是赋值了12.0
		//二进制 ( 0b 开头 + 二进制数值主体)
// a = 0b10011;//19
// 八进制 ( 0 开头 + 八进制数值主体)
// a = 0111;//73
		//十六进制 ( 0x 开头+十六进制数值主体)
// a = 0x111;
// System.out.println(a);
		//声明两个变量,将两个变量的值进行交换
// int e = 12;
// int f = 34;
// int temp = e;
// e = f;
// f = temp;
		//java中浮点型默认类型是double
		//要将double转为float
// float ff = 12.2f;
		//隐式类型转换
		//强制类型转换
// System.out.println(e+" "+f);
		
		int num = 12 + 23;
		int a = 12, b = 23;
		//算术运算
		int c = a + b;
		int d = a - b;
		int e = a * b;
		int f = a / b;
		int h = a % b;
		//一元运算
		a = 12;
		a++;//把a的值自加1, a = 13;
		++a;//把a的值自加1, a = 14;
		a--;//把a的值自减1, a = 13;
		--a;//把a的值自减1, a = 12;
		
		//++, --赋值;
		a = 12;
		num = a++;//num = 12;
				  //a = 13;
		System.out.println(num);
		a = 12;
		num = ++a;//num = 13;
				  //a = 13;
		System.out.println(num);
		
		a = 12;
		a = a++;
// c = a++;
// a = c;
		System.out.println(a);
		
		//判断运算符
		boolean bool;
		bool = 12 > 23;//false
		bool = 12 < 23;//true
		bool = 12 <= 23;//true
		bool = 12 >= 23;//false
		bool = 12 == 23;//false
		bool = 12 != 23;//true
		
		
		//逻辑运算符 && || !
		
		a = 12;
		// && 前后表达式都为true,整个表达式结果才为true
		bool = ((a % 3 == 0) && (a % 4 == 0));
		System.out.println("True");
		
		a = 7;
		// || 前后表达式有一个为true,整个表达式就为true
		bool = ((a % 3 == 0) || (a % 4 == 0));
		System.out.println(bool);
		
		
		// ! 非(翻转结果)[一元运算]
		a = 9;
		bool = !(a % 3 == 0);
		System.out.println(bool);
		
		//短路现象
		//1. A&&B 如果A的结果为false,整个表达式的结果就是false,B不会被运算
		a = 3;
		bool = false && a++ % 3 == 0;
		System.out.println(bool);
		System.out.println(a);//发现a并未改变,说明a++并未被执行
		//2. A||B 如果A的结果为true,整个表达式的值就为true,B不会被执行
		bool = true || a++ % 3 == 0;
		System.out.println(bool);
		System.out.println(a);//发现a并未改变,说明a++并未被执行
		
		//赋值运算
		//That is so easy that I will not note it.
		
	}
}