当时我的答案是 3abc3
正确答案是 3abc12
分析: 从左往右运算, 但是注意是加减才行哈
因为我去试了试乘法, 我嘞个豆, 运算表达式居然遵循乘除模优先嘞
注意从左往右运算的 +符号 的不同意义(1.数值相加 2.表示连接符号)
运算表达式总结: 先乘除模 -> 再从左往右运算
乘法优先的代码:
运行结果:
除法优先的代码:
运行结果:
模优先的代码:
运行结果:
我嘞个豆, 又错一个
我的答案: 97abc
正确答案: aabc
分析: 注意字符串的前后+都是表示连接
int a = 10; 这个整体表示创建一个变量
a++; a是这个变量的表现形式(翻译: 只是用a来表示这个变量)
a++; 就表示他已经转化为 a = a+1; 这个了, 后续使用的就是已经转化后的a
无论变量a放前放后都要进行 ++/-- 结果都一样
单独使用也容易出错
注意:只要出现 变量++(例如x++,a++,count++等等); 就要知道接下来使用的变量已经改变了, 变为了新的变量[变量代表的是整体(数据类型 变量名 = 数据值),只要有一个变了,那就说明变量变了] 通常用变量名来表示这个变量 通常爱出错是因为系统自动省略了下面这一行代码: 数据类型 变量 = 上一次的变量+1;
package com.itheima.arithmeticoperator;
public class ArithmeticoperatorDemo6 {
public static void main(String[] args) {
int x = 10;
int y = x++;
int z = ++x;
System.out.println("x为:" + x);//12
/* 注意:只要出现 变量++(例如x++,a++,count++等等); 就要知道接下来使用的变量已经改变了,
变为了新的变量[变量代表的是整体(数据类型 变量名 = 数据值),只要有一个变了,那就说明变量变了]
通常用变量名来表示这个变量
通常爱出错是因为系统自动省略了下面这一行代码:
数据类型 变量 = 上一次的变量+1; */
System.out.println("y为:" + y);//10
System.out.println("z为:" + z);//12
}
}
a++;
++a;
知识点都在注释里面
package com.itheima.assignmentoperator;
public class AssignmentoperatorDemo1 {
public static void main(String[] args) {
// 知识点: 运算符 -> 赋值运算符
// +=
// 规则: 将左边变量和右边变量相加,赋值给新的变量,新的变量还是以左边的变量名命名
// 因为数据值已经变了, 所以就变成了新的变量, 但还是以左边的变量名命名
// 其他赋值运算符 -= *= /= %= 同理
int a = 10;
int b = 20;
a += b; // 等同于下列代码
// a = a + b;
// 看了下文细节之后, 变成等同于下列代码
// a = (int)(a + b);
System.out.println("a为" + a);//30 此时打印的是新的变量a
System.out.println("b为" + b);//20
// 细节:
// += -= *= /= %= 它们的底层都隐藏了一个强制类型转换
// 怎么转? -> 看含变量运算的运算表达式中 左边变量的数据类型是什么就转成什么
short s = 1;
s += 1; // 这是一个含变量运算的运算表达式 左边变量s的数据类型是short型就转成short型
// 所以这个表达式等同于下列代码
// s = (short)(s + 1);
System.out.println("s为" + s);
// 前面的 "s为" 表示直接使用的字面量;
// 后面的 s 表示间接使用的变量
}
}
package com.itheima.Operator.logicalOperator;
public class logicalOperatorNote {
public static void main(String[] args) {
// 知识框架: 运算符 -> 逻辑运算符
// 什么是逻辑运算符
// 举个例子
// 数学: 5 < x < 15
// Java: x > 5 & x < 15 &表示和,作用为逻辑与(且)
// 分类:
// 符号: & | ^ ! 四种
// 作用: & 逻辑与(且) 且
// | 逻辑或 或
// ^ 逻辑异或 异或
// ! 逻辑非 非
// 说明: & 并且,两边都为真,结果才是真
// | 或者,两边都为假,结果才是假
// ^ 相同为false,不同为true
// ! 取反
// ^ 逻辑异或 异或 的记忆方法
// 拒绝同性恋
// ! 逻辑非 非 取反
// 提示: 取反的感叹号不用写多次,要么不写,要么只写一次
// 使用场景:
// & 账户正确 并且 密码正确
// | 有房子 或者 有车子
System.out.println("^^");
}
}
package com.itheima.Operator.logicalOperator;
public class logicalOperatorDemo1 {
public static void main(String[] args) {
// 演示 4类
// 符号: &
// 作用: & 逻辑与(且) 且
// 说明: & 并且,两边都为真,结果才是真
// 运算符(6种)可以直接使用字面量演示
System.out.println(true & true);//真
System.out.println(true & false);//假
System.out.println(false & true);//假
System.out.println(false & false);//假
System.out.println("-----");
// 符号: |
// 作用: | 逻辑或 或
// 说明: | 或者,两边都为假,结果才是假
// 运算符(6种)可以直接使用字面量演示
System.out.println(true | true);//真
System.out.println(true | false);//真
System.out.println(false | true);//真
System.out.println(false | false);//假
System.out.println("-----");
// 符号: ^
// 作用: ^ 逻辑异或 异或
// 说明: ^ 相同为false,不同为true
// 运算符(6种)可以直接使用字面量演示
System.out.println(true ^ true);//假
System.out.println(true ^ false);//真
System.out.println(false ^ true);//真
System.out.println(false ^ false);//假
System.out.println("-----");
// 符号: !
// 作用: ! 逻辑非 非
// 说明: ! 取反
// 运算符(6种)可以直接使用字面量演示
System.out.println(! true);//假
System.out.println(! false);//真
// 符号: & | ^ ! 四种
// 作用: & 逻辑与(且) 且
// | 逻辑或 或
// ^ 逻辑异或 异或
// ! 逻辑非 非
// 说明: & 并且,两边都为真,结果才是真
// | 或者,两边都为假,结果才是假
// ^ 相同为false,不同为true
// ! 取反
System.out.println("^^");
}
}
package com.itheima.Operator.relationalOperator;
public class relationalOperatorDemo1 {
public static void main(String[] args) {
// 知识框架: 运算符 -> 关系运算符
// 有哪些? 有这些: == != > >= < <=
// 关系运算符和布尔有关系: 关系运算符的输出结果要么是true, 要么是false
// 注意: 不要把 "==" 误写成 "="
// 关系关系,就是看它们有没有关系
int a = 10;
int b = 20;
int c = 10;
System.out.println(a == b); /* 这里是直接使用字面量boolean类型
输出true或false
不用再单独定义变量写 数据类型boolean */
System.out.println(a == c);
System.out.println("== != > >= < <= ");
}
}
package com.itheima.Operator.relationalOperator;
import java.util.Scanner;//看分析1.1 这行代码还是要自己写一下才记得住 import java.util.Scanner; 要写在类名的上面
public class relationalOperatorTest1 {
public static void main(String[] args) {
// 写题
/* 需求:
您和您的约会对象正试图在餐厅获得一张桌子。
键盘录入两个整数,表示你和你约会对象衣服的时髦度。(手动录入0~10之间的整数,不能录其他)(这个限制此时还不会,因为这个知识点还没学到)
如果你的时髦程度大于你对象的时髦程度,相亲就成功,输出true。
否则输出false。*/
/* 分析:
1.第一步肯定想到键盘录入嘛,(题目都叫你键盘录入了你不入)
1.1 import java.util.Scanner; //找到它
1.2 Scanner sc = new Scanner(System.in); //打个招呼
1.3 int myFashion = sc.nextInt(); //真正开始用它,最重要的就是这一步,所有操作都在这,这一步是它的实质,还要注意在这一步的上面写个录入提示
键盘录入又跟变量有关,
那就说明要用到变量,
用到变量那肯定用到那老三样: 数据类型 变量名 = 数据值;
因为变量就是这老三样组成的
2.第二步看到大于说明要用到关系比较符 >
3.第三步看到true,false就要想到boolean类型
是直接使用字面量boolean类型,还是间接使用变量中的数据类型boolean类型
因为第一步跟变量有关,说明要间接使用变量中的数据类型boolean类型
*/
//开始第一步
Scanner sc = new Scanner(System.in);//看分析1.2 这行代码还是要自己写一下才记得住 Scanner sc = new Scanner(System.in);
System.out.println("请输入自己的衣服的时髦度");
int myFashion = sc.nextInt();//看分析1.3 这行代码还是要自己写一下才记得住 int sc = sc.nextInt(); 上面一行记得写提示
System.out.println("请输入约会对象的衣服的时髦度");
int girlFashion = sc.nextInt();
//开始第二步与第三步,因为它俩要一起用
//说明关系比较符和变量有关,它用在变量中的数据值与数据值之间,通常情况下数据值只有一个,但由于关系比较符的出现,数据值就不止一个
//它的出现也意味着变量中的数据类型boolean类型的出现,它俩要一起用
boolean result = myFashion > girlFashion;
//结束,打印结果,使用变量这个转换器
System.out.println(result);
System.out.println("^^");
}
}