Java学习笔记day02

运算符

对数据进行运算

分类

算术运算符
逻辑运算符
赋值运算符
三目运算符(三元运算符)
位运算符(了解)

算术运算符

+:加法
-:减法
*:乘法
/:除法
        除数不能为0
%:取余
++:自增
    ++在前
        先自增再参与运算
    ++在后
        先参与运算再自增
--:递减
    --在前
        先递减再参与运算
    --在后
        先参与运算再递减
​
优先级:
    有括号先算括号中
    有乘除先算乘除
    从左向右依次运算
​
注意:可以给整型与浮点型使用

逻辑运算符

< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
    基本数据类型判断值是否相同
    引用数据类型判断内存地址是否相同
    (不能判断字符串内容是否相同)
!= 不等于
    基本数据类型判断值是否不相同
    引用数据类型判断内存地址是否不相同
    (不能判断字符串内容是否不相同)
& 与
    同真为真,有假为假
&& 短路与
    同真为真,有假为假   效率比&高
    &&与&的区别
        &
            true & false & true & flase ...
            逐个获取计算结果
        &&
            true && false && true && false ...
            遇到false直接结束
| 或
    有真为真,全假为假
|| 短路或
    有真为真,全假为假
    效率比|高
! 非
    非真为假,非假为真(取反)
​
注意:
    最终结果只能是boolean型
    条件表达式:最终结果为boolean型的算数式都是条件表达式
    与,或,非不加括号最后运算

赋值运算符

= 赋值  将等号右边的值赋值给左边的变量
+= 加等
-= 减等
*= 乘等
/= 除等
%= 取余等
​
注意:等号两边数据类型要相同

三目运算符

条件表达式?值1:值2
当条件表达式为true,取值1,当条件表达式为false,取值2
值1与值2的数据类型要相同
可以使用变量
条件表达式: 使用逻辑运算符连接,结果为boolean型的表达式称为条件表达式
获取3个数的最大值
    int a = 10;
    int b = 20;
    int c = 19;
    int max = a > b ? a : b;
    max = max > c ? max : c;
    System.out.println(max);
    System.out.println((a > b ? a : b) > c ? (a > b ? a : b) : c);

位运算符(了解)

&
    int a = 3;
    inb b = 2;
    int c = a&b;
    a       11
    b       10
    c       10      2
|
    int a = 3;
    int b = 2;
    int c = a|b;
    a       11
    b       10
    c       11      3
!
    int a = 3;
    !a
    a       11
    !a      00      0
^
    int a = 3;
    int b = 2;
    int c = a^b;
    a       11
    b       10
    c       01      1
<<
    int a = 3;
    a << 2;
    a           11
    左移2位      1100      12
>>
    int a = 3;
    a >> 2;
    a           11
    右移2位      00        0

数据类型转换

小类型转换为大类型 --> 自动转换
int num = 10;
long l = num;
注意: 小类型与大类型运算,结果为大类型
    double d = 10 + 0.0;
大类型转换为小类型 --> 强制类型转换
小类型 变量名 = (小类型)要转换的变量或数据;
long l = 10l;
int a = (int)l;
​
int i = 128;
byte b = (byte)i; //结果是-128
注意: 强制转换会导致数据丢失
小写字母对应的数字:97~122
大写字母对应的数字:65~90

进制转换(了解)

二进制: 0,1
八进制: 0,1,...,7
十进制: 0,1,...,9
十六进制: 0,1,...,9,a,b,c,d,e,f
​
十进制转二进制
    除2,余数倒读
十进制转八进制
    除8,余数倒读
十进制转十六进制
    除16,余数倒读
二进制转十进制
    10100 --> 2^4 + 2^2 = 20
八进制转十进制
    26 --> 2*8 + 6 = 22
十六进制转十进制
    AF --> 10*16 + 15 = 175

字符串判断内容是否相同

boolean b = 字符串1或字符串变量1.equals(字符串2或字符串变量2);
String s1 = "Hello";
String s2 = "World";
boolean b = s1.equals(s2);//false
boolean b = s1.equals("World");//false
boolean b = "Hello".equals(s2);//false
boolean b = "Hello".equals("World");//false

字符串连接符

+
int i = 10;
String s1 = "1";
String s2 = i + s1; // "101"
​
String s1 = 1 + 2 + "3"; // "33"
String s2 = "1" + 2 +3; // "123"

转义字符

特殊含义的字符
\'      含义: '
\"      含义: "
\\      含义: \
\n      含义: 换行
\t      含义: 制表

键盘录入

Scanner
使用步骤:
    1.导包    import java.util.Scanner;
    2.创建Scanner对象   Scanner sc = new Scanner(System.in);
    3.等待用户输入,并获取用户输入结果(可以重复使用多次)
        让用户输入字符串
            String str = sc.next();
        让用户输入整数
            int a = sc.nextInt();
        注意:
            str, a对应的内容就是用户输入的内容
            next()或nextInt()都会阻塞程序,直到用户输入

软件作用

1.解决现实生活中的问题
2.虚拟一个世界

分支语句

Java中的语句分类

顺序语句    代码从上向下依次执行
分支语句    提供多个分支只能选择一个执行
循环语句    重复执行一段代码

分支语句

作用: 判断
分类: 
    if 特点: 可以判断内容是否相同,也可以判断区间
    switch 特点: 只能判断值是否相同,效率稍微比if快
           注意: 只能判断8个基本数据与String的数据是否值相等

if

if(条件表达式){
    ...
}
​
if(条件表达式){
    ...
}else{
    ...
}
​
if(条件表达式1){
    ...
}
else if(条件表达式2){
    ...
}
    .
    .
    .
else if(条件表达式n){
    ...
}
else{
    ...
}
​
总结:
    if必须有
    else可有可无,最多一个,必须在if的末尾
    else if可有可无,可以有多个
    
    if(条件表达式1){
        ...
    }
    [else if(条件表达式2){
        ...
    }
        .
        .
        .
    else if(条件表达式n){
        ...
    }
    else{
        ...
    }]
    注意: []中的内容可有可无
         if中可以使用if(if的嵌套)

switch

switch(变量){
    case 值1:
        ...
    break;
    case 值2:
        ...
    break;
        .
        .
        .
    case 值n:
        ...
    break;
    default:
        ... //当变量的值不等于以上常量时,执行此处代码
    break;
}
​
break: 跳出当前代码块
{}: 代码块

作用域

变量声明的大括号,就是变量的作用域

练习

//1.使用变量记录两个数,分别是10与11.1.计算两数之和
class Work {
	public static void main(String[] args){
		int a = 10;
		double b = 11.1;
		double sum = a + b;
		System.out.println("两数之和为:" + sum);
	}
}





//2,将字符A转换为数字打印输出
class Work {
	public static void main(String[] args){
		int a = 'A';
		System.out.println("字符A转换为数字后是:" + a);
	}
}





//3.将字符Z转换为数字打印输出
class Work {
	public static void main(String[] args){
		int a = 'Z';
		System.out.println("字符Z转换为数字后是:" + a);
	}
}





//4.将数字98转换为字符
class Work {
	public static void main(String[] args){
		char ch = (char)98;
		System.out.println("数字98转换为字符是:" + ch);
	}
}





//5.按照格式打印一下内容
//	打印内容格式[name:xx,age:xx,个性签名:"xxxxx"];
//	要求:分别使用三个变量记录姓名,年龄与个性签名,最后拼接打印
class Work {
	public static void main(String[] args){
		String name = "张三";
		int age = 18;
		String sign = "这是第5题";
		System.out.println("[name:" + name + ",age:" + age + ",个性签名:\"" + sign + "\"]");
	}
}
	
	
	
	
	
/*
6,笔算一下题目
	题目1
	int a = 10;
	int b = 2;
	int c = a + (++a)+(b++);
	求c的结果
	c的结果是 10 + 11 + 2 = 23;
	题目2
	计算99对应的2进制,8进制,16进制的值   11100011   143   63
	计算2进制101100对应的十进制,8进制,16进制的值   44   54   2c
*/





//7.用户输入账号密码,如果账号是admin,密码是123456显示登录成功,否则显示登录失败
import java.util.Scanner;

class Work {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);	
		System.out.print("请输入账号:");
		String admin = sc.next();
		System.out.print("请输入密码:");
		String password = sc.next();
		if(admin.equals("admin") && password.equals("123456")) {
			System.out.println("登陆成功");
		}
		else
		{
			System.out.println("登陆失败");
		}	
	}
}





//8.满200打8折,会员在打8折
import java.util.Scanner;

class Work{
	public static void main(String[] args){
		//满200打8折,会员再打8折
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入消费金额:");
		int money = sc.nextInt();
		double newMoney = money;
		System.out.println("是否为会员(y/n):");
		String isVip = sc.next();		
		if(money >= 200){
			newMoney = money * 0.8;
			if(isVip.equals("y")){
				newMoney *= 0.8;
			}			
			System.out.println("本次应付:" + money + ", 本次实付:" + newMoney);
		}else{
			if(isVip.equals("y")){
				newMoney = money * 0.8;
			}
			System.out.println("本次应付:" + money + ", 本次实付:" + newMoney);
		}
	}
}





/*
9.小程序助你破产
	需求:
		当今社会,节日很多,如何给女朋友(老婆)送什么礼物让人头疼,所以使用程序解决该问题
	分析:
		元旦					红包
		元宵					元宵
		情人节					鲜花
		女神节					化妆品
		劳动节					踏春
		儿童节					游乐场
		七夕节					逛吃
		中秋节					月饼
		重阳节					登山
		国庆节					旅游
		双11					清空购物车
		双12					清空购物车
		平安夜					苹果
		狂欢夜					玩		
		春节					红包
		开斋节					吃饭
	要求:
		用户输入节日,显示对应的礼物
		如果节日不存在收录的,显示暂未收录
*/
import java.util.Scanner;

class Work {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);	
		System.out.print("请输入节日:");
		String festival = sc.next();
		
		switch(festival){
			case "元旦":
				System.out.println("礼物为红包");
			break;
			case "元宵":
				System.out.println("礼物为元宵");
			break;
			case "情人节":
				System.out.println("礼物为鲜花");
			break;
			case "女神节":
				System.out.println("礼物为化妆品");
			break;
			case "劳动节":
				System.out.println("礼物为踏春");
			break;
			case "儿童节":
				System.out.println("礼物为游乐场");
			break;
			case "七夕节":
				System.out.println("礼物为逛吃");
			break;
			case "中秋节":
				System.out.println("礼物为月饼");
			break;
			case "重阳节":
				System.out.println("礼物为登山");
			break;
			case "国庆节":
				System.out.println("礼物为旅游");
			break;
			case "双11":
				System.out.println("礼物为清空购物车");
			break;
			case "双12":
				System.out.println("清空购物车");
			break;
			case "平安夜":
				System.out.println("礼物为苹果");
			break;
			case "狂欢夜":
				System.out.println("礼物为玩");
			break;
			case "春节":
				System.out.println("礼物为红包");
			break;
			case "开斋节":
				System.out.println("礼物为吃饭");
			break;
			default:
				System.out.println("暂未收录");
			break;
		}	
	}
}





/*
11,快递员送货
	0~50		开除
	50~200		罚款
	200~1000	正常工资
	1000~3000	1.1倍工资
	3000~		1.5倍工资
*/
import java.util.Scanner;

class Work {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);	
		System.out.print("请输入送货件数:");
		int num = sc.nextInt();
		if(num >= 0 && num <50) {
			System.out.println("开除");
		}
		else if(num >= 50 && num < 200) {
			System.out.println("罚款");
		}
		else if(num >= 200 && num < 1000) {
			System.out.println("正常工资");
		}
		else if(num >= 1000 && num < 3000){
			System.out.println("1.1倍工资");
		}
		else if(num >= 3000) {
			System.out.println("1.5倍工资");
		}
		else
		{
			System.out.println("输入信息有误");
		}	
	}
}





/*
12,输入考试成绩,显示区间(满分100)
	0~59
	60~70
	71~84
	85~100
	<0
	>100
*/
import java.util.Scanner;

class Work {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);	
		System.out.print("请输入考试成绩:");
		int grade = sc.nextInt();
		if(grade >= 0 && grade <60) {
			System.out.println("不及格");
		}
		else if(grade >= 60 && grade <=70) {
			System.out.println("及格");
		}
		else if(grade >= 71 && grade < 85) {
			System.out.println("良好");
		}
		else if(grade >= 85 && grade <= 100){
			System.out.println("优秀");
		}
		else
		{
			System.out.println("输入成绩有误");
		}	
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值