Java SE基础知识2(运算符、流程控制语句)

运算符:

1.算数运算符
	+ - * / ++ -- %(取余)
2.赋值运算符
	= += -= *= /=
3.比较运算符
	> < >= <= != ==
	结果返回boolean类型
4.位运算符 ->  二进制
	&(与): 两个都是1的情况下才是1
	|(或): 只要有一个1的情况下都是1
	^(抑或): 相同为0,不同为1

5.逻辑运算符
	&& || ^ ! & |
	符号左右两边都是boolean表达式
	结果返回也是boolean表达式
	&& &(一假即假): 两个都是true的时候才是true
	|| |(一真即真): 只要有一个是true的时候就是true

	&& || -> 短路操作
		短路操作的特点:
			一旦出现结果,就不在继续后续操作

6.位移运算符 ->  二进制
	>> << >>>
	>>: 符号位是正数则补0,负数则补1
	>>>: 符号位永远只补0, 得到的只能是正数,并且是正大数


7.三元(三目)运算符
	boolean表达式 ?  值1 : 值2

	返回:true/false
		如果返回true则表示 值1
		如果返回false则表示 值2

	作用:可以用来作为判断(if)

eg1:
package day02.type;

public class Demo03 {
//算数运算符
public static void main(String[] args) {
//运算符左右两边类型必须一致
double a = 1 + 3.14;

	//整除问题
	int b = 10 / 3;
	System.out.println(b);//3
	
	double d = 5 / 2;
	System.out.println(d);//2.0
	double d2 = 5.0 / 2;
	System.out.println(d2);//2.5
	
	System.out.println(b++);//3 先使用后自加
	System.out.println(b);//4
	
	System.out.println(++b);//5 先自加后使用
	System.out.println(b);//5

}

}

eg2:
package day02.type;
/*

  • 位运算符
    */
    public class Demo04 {
    public static void main(String[] args) {
    //二进制
    //2: 0000 0010
    //4: 0000 0100
    System.out.println(2 & 4);//0 -> 0000 0000
    System.out.println(2 | 4);//6 -> 0000 0110
    System.out.println(2 ^ 4);//6 -> 0000 0110
    }

}

eg3:
package day02.type;
/*

  • 逻辑运算符
    */
    public class Demo05 {
    public static void main(String[] args) {
    int a = 11;
    int b = 10;
    // && -> 短路操作
    System.out.println(a++ < 10 & b++ > 10 & a-- > 10);//false
    System.out.println(a);// && 12 & 12
    System.out.println(b);// && 10 & 11

    }

}

eg4:
package day02.type;
/*

  • 位移运算符
    */
    public class Demo06 {
    public static void main(String[] args) {
    System.out.println(4 >> 1);//2 相当于 ÷2
    System.out.println(4 << 1);//8 相当于 *2
    System.out.println(4 >>> 1);//2

     //-4: 原码:1000 0100
     //    反码:1111 1011
     //    补码:1111 1100
    
     System.out.println(-4 >> 1);// -2
     System.out.println(4 << 1);//8 相当于 *2
     System.out.println(-4 >>> 1);// 2147483646
    

    }

}

eg5:
package day02.type;
/*

  • 三目运算符
    */
    public class Demo07 {
    public static void main(String[] args) {
    int a = 20;

     double d = a <= 19 ?  4.0 : 5;
     System.out.println(d);
    

    }

}


流程控制语句

顺序结构:系统默认的执行顺序
分支结构:条件判断 -> boolean类型
	如果xxx,那就xxx
	if(条件) -> 只要if,没有else
	如果xxxx,那就xxx,否则就xxx
	if(条件) - else
	如果xxx,那就xxx,否则如果xxx,那就xxxx
	if(条件) - else if()
		条件:
			必须是boolean类型的值
			true/false
			比较运算符 - > boolean类型值
				a > 10 / b < 10
			逻辑运算符 -> boolean类型值
				a > 10 && b < 10

	switch - case
		适用情景: 判断是否相等时使用
		1.switch后跟的是要判断的内容
		2.判断的内容只能放
			int/byte/short/char/String
		3.case具有穿透性,只有遇到break结束
		4.default相当于if - else中的else	

eg1:
package day02.if_else;
/*

  • if()
    */
    public class Demo01If {
    public static void main(String[] args) {
    // 如果小明考了满分,那就买个遥控汽车
    int sore = 90;
    if(sore == 100) {
    System.out.println(“买个遥控汽车”);
    System.out.println(“买个电池”);
    }
    }

}

eg2:
package day02.if_else;
/*

  • if - else
    */
    public class Demo02 {
    public static void main(String[] args) {
    // 判断一个学生成绩: 大于90分,那就打印优秀,否则就是良好
    int sore = 90;
    if(sore >= 90) {
    //满足if条件情况下的代码
    System.out.println(“优秀”);
    }else {
    //不满足
    System.out.println(“良好”);
    }

    }

}

eg3:
package day02.if_else;

public class Demo03 {

public static void main(String[] args) {
	//如果 >= 90,标记优秀
	//否则如果 >= 80,标记良好
	//否则如果 >= 60,标记及格
	//否则不及格
	int sore = 90;
	/*
	if(sore >= 90) {
		System.out.println("优秀");
	}else {
		if(sore >= 80) {
			System.out.println("良好");
		}else {
			if(sore >= 60) {
				System.out.println("及格");
			}else {
				System.out.println("不及格");
			}
		}		
	}
	
	*/
	
	if(sore >= 90) {
		System.out.println("优秀");
	}else if(sore >= 80) {
		System.out.println("良好");
	}else if(sore >= 60) {
		System.out.println("及格");
	}else {
		System.out.println("不及格");
	}
	
}

}

eg4:
package day02.if_else;

import java.util.Scanner;//导包

public class Demo04 {

public static void main(String[] args) {
	//JDK - Scanner类,控制台,手动输入的
	Scanner console = new Scanner(System.in);//是控制台对象,用ctrl+shift+0导入包
	
	//输入小数值
	//Double d = console.nextDouble();

	//输入整数
	//int i = console.nextInt();

	//输入字符串 - String	
	System.out.println("请输入");
	String s1 = console.nextLine();//遇到回车就结束,这句话放在控制台下面第一行
	System.out.println(s1);
	System.out.println("请输入");
	String s = console.next();// 遇到空格就结束
	System.out.println(s);
}

}

eg5:
package day02.if_else;

import java.util.Scanner;

/*

  • 用户输入信息 : 商品单价xx 商品的数量xx
  • 输入: 实付金额:1000
  • 如果: 实付金额 > 500 * 0.8
  • 输出: 找零金额:
  • 如果:钱不够 -> 判断实付金额不够

*/
public class Demo05 {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.println(“请输入商品单价”);
//商品单价
int price = console.nextInt();
System.out.println(“请输入商品数量”);
//商品数量
int count = console.nextInt();
System.out.println(“请输入实付金额”);
int money =console.nextInt();
//商品总价格
double sum = price * count;
if(sum >= 500) {
sum = sum * 0.8;
}
if(money >= sum) {
System.out.println(“找零” + (money - sum) );
}else {
System.out.println(“钱不够”);
}
}

}

eg6:
package day02.if_else;

import java.util.Scanner;

/*

  • 判断是不是闰年
    */
    public class Demo06 {
    public static void main(String[] args) {
    Scanner console = new Scanner(System.in);
    System.out.println(“请输入年份:”);
    int year = console.nextInt();
    if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ) {
    System.out.println(“是闰年”);
    }else {
    System.out.println(“不是闰年”);
    }
    }

}

eg7:
package day02.if_else;

import java.util.Scanner;

//判断每个月有多少天,输出天数
public class Demo07 {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
int month = console.nextInt();
/*
if(month == 1 || month == 3 || month == 5
|| month == 7 || month == 8 || month == 10
|| month == 12) {
System.out.println(“天数为31天”);
}else if(month == 4 || month == 6 || month == 9
|| month == 11) {
System.out.println(“天数为30天”);
}else if(month == 2) {
System.out.println(“天数为28天”);
}else {
System.out.println(“不是月份”);
}
*/
//switch后面跟的是要判断的month
//int/byte/short/char
//jdk 1.7 -> String
switch(month) {
//case具有穿透性的,遇到break结束
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(“天数是31天”);
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(“天数是30天”);
break;
case 2:
System.out.println(“天数是28天”);
break;
default:
System.out.println(“不是月份”);
}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值