第一章 运算符
1.1 自增自减运算符
基本用法:(掌握)
不管是写在前面,还是写在后面,只要单独写一行,结果就是一样的。
代码示例:
int a = 1;
//后++
a++;//把变量里面的值+1,执行完毕之后,变量里面的值就是2
System.out.println(a);//2
//先++
++a;//把变量里面的值+1,执行完毕之后,变量里面的值就是3
System.out.println(a);//3
//后--
a--;
System.out.println(a);//2
//先--
--a;
System.out.println(a);//1
扩展用法:(了解)
先++和后++,以后在实际开发中,我们基本上都是单独写成一行的。
如果实际参与了计算,一般在代码里面是不会写的。
运算规则:
先++:
先加后用
int a = 1;
int b = ++a;
// 先把变量a的值1,自增变成2.
// 再把2拿出来使用,赋值给变量b
所以,程序运行完毕之后,a为2,b为2
后++:
先用后加
int a = 1;
int b = a++;
// 先把变量a的值进行使用,赋值给变量b
// 然后变量a再进行自增
所以,程序运行完毕之后,a为2,b为1
面试题举例:
public class Test {
public static void main(String[] args) {
int x = 10;
//后++,先用后加
//先把x的值10拿出来用,赋值给y,然后x再进行自增变成11
//当这行代码执行完毕之后,x = 11 y = 10
int y = x++;
//先++,先加后用
//先把x的值进行自增,变成12,再把自增之后的值拿出来用。赋值给z
//当这行代码执行完毕之后,x = 12 z = 12
int z = ++x;
//因为x自增了两次就是12
System.out.println("x:" + x);//12
System.out.println("y:" + y);//10
System.out.println("z:" + z);//12
}
}
应用场景一:
当过生日的时候,记录age的变量要自增。
变量在合适的时候需要自增一次。
应用场景二:
商城项目中的购物车,也需要用到自增,自减运算符。
应用场景三:
统计数量的时候。
在一开始,我们可以定义一个变量记录0
把所有参与统计的数据,一个一个进行对比,如果满足,变量就自增一次。
当所有参与统计的数据全部统计完毕,那么变量就表示最终的次数。
举例:
1 ~ 100 之间有多少个偶数?
代码中,我们可以从1开始去数到100。如果遇到一个偶数,那么统计的变量就需要自增一次。
当100个数全部统计完毕之后,变量的值就是最终的结果。
具体的代码我们会在后面学习完循环的时候写,现在知道一下应用场景即可。
1.2 赋值运算符
分类:
符号 | 说明 |
---|---|
= | 把等号的右边赋值给左边。int a = 10; |
+= | 把左边和右边进行相加,结果赋值给左边,对右边没有任何影响。 |
-= | 把左边和右边进行相减,结果赋值给左边,对右边没有任何影响。 |
*= | 把左边和右边进行相乘,结果赋值给左边,对右边没有任何影响。 |
/= | 把左边和右边进行相除,结果赋值给左边,对右边没有任何影响。 |
%= | 把左边和右边进行相除,把余数赋值给左边,对右边没有任何影响。 |
代码示例:
//赋值运算符
//基本的赋值运算符 =
//其他赋值运算符
//+= -= *= /= %=
//以+=为例
int a = 10;
int b = 20;
//就表示把左右进行相加,把结果赋值给左边的,对右边没有任何影响
//相当于 a = a + b;
a += b;
System.out.println(a);//30
System.out.println(b);//20
1.3 比较运算符
概念:
比较运算符,又叫做关系运算符,其实就是做了一个判断而已。
分类:
==:判断左右是否相等
!=:判断左右是否不相等
>:判断左边是否大于右边
>=:判断左边是否大于等于右边
<:判断左边是否小于右边
<=:判断左边是否小于等于右边
注意点:
关系运算符的结果只能是布尔类型的,要么是true,要么是false。在后面实际开发中,我们会根据两种情况来执行不同的代码。
用户登录,正确true,登录成功
错误false,登录失败
==千万不能写成一个=
练习:
需求:
您和您的约会对象在餐厅里面正在约会。
键盘录入两个整数,表示你和你约会对象衣服的时髦度。(手动录入0~10之间的整数,不能录其他)
如果你的时髦程度大于你对象的时髦程度,相亲就成功,输出true。
否则输出false。
代码示例:
//分析:
//1.键盘录入两个整数
Scanner sc = new Scanner(System.in);
System.out.println("请输入你衣服的时髦度");
int fashtion1 = sc.nextInt();
System.out.println("请输入约会对象衣服的时髦度");
int fashtion2 = sc.nextInt();
//2.比较一下即可
boolean result = fashtion1 > fashtion2;
System.out.println(result);
1.4 逻辑运算符
1.4.1 而且和或者
分类:
& 逻辑与,建议读作并且、而且。
表示需要同时满足左边和右边才可以。
| 逻辑或,建议读作或者。
表示两边的条件只要满足其中一个就可以了。
代码示例:
//& 而且
//规则:两边都为真,结果才是真。只要有一个为假,结果就是假
System.out.println(true & true);//true
System.out.println(false & true);//false
System.out.println(true & false);//false
System.out.println(false & false);//false
// | 或者
//规则:两边都为假,结果才是假,只要有一个为真,结果就是真
System.out.println(true | true);//true
System.out.println(false | true);//true
System.out.println(true | false);//true
System.out.println(false | false);//false
应用场景一:
用户在登录的时候,需要用户名和密码这两个同时输入正确了,那么才是可以的。
此时就是两个条件同时满足,用并且。
应用场景二:
丈母娘跟女婿提要求:需要有房子,或者有车子就可以穿走我的小棉袄。
此时就是两个条件中只要满足其中一个即可,用或者
1.2.2 非/取反
运算规则:
改变true和false的结果。
如果是true,取反之后变成false
如果是false,取反之后变成true
代码示例:
System.out.println(true);//true
System.out.println(!true);//false
System.out.println(!false);//true
建议:
最多只能用一次。用多了没有任何意义。
代码示例:
System.out.println(!!true);
1.4 短路逻辑运算符
分类:
&& 短路且、短路与
|| 短路或
特点:
只要左边能确定表达式最终的结果,那么右边不会参与计算。
&&:
左边为true,那么右边会参与计算。
左边为false,那么右边不会参与计算。
||:
左边为true,那么右边不会参与计算。
左边为false,那么右边会参与计算。
常用的逻辑运算符:
&& || !
练习:
数字6是一个真正伟大的数字,键盘录入两个整数。
如果其中一个为 6,最终结果输出true。
如果它们的和为 6的倍数。
最终结果输出true。
其他情况都是false。
代码示例:
//1.键盘录入两个整数
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
int a = sc.nextInt();
System.out.println("请输入第二个整数");
int b = sc.nextInt();
//2.a==6 || b==6 || (a + b) % 6 == 0
//三个条件选一个
boolean result = (a == 6) || (b == 6) || ((a + b) % 6 == 0);
System.out.println(result);
1.5 三元运算符
三元运算符又叫三元表达式,还有其他名字:问号冒号表达式,三目运算符。
格式:
关系表达式 ? 表达式1 : 表达式2 ;
注意点:
三元运算符的结果一定要被使用,可以赋值给一个变量,或者直接打印输出。
执行流程:
先执行关系表达式。
如果结果为真,执行表达式1,此时表达式1的结果就是整个三元运算符的结果。
如果结果为假,执行表达式2,此时表达式2的结果就是整个三元运算符的结果。
代码示例:
int a = 10;
int b = 20;
//利用三元表达式求a和b之间的较大值
int max = a > b ? a : b ;
System.out.println(max);
System.out.println(a > b ? a : b);
1.6 练习 – 两只老虎
需求:
动物园里有两只老虎,体重分别为通过键盘录入获得,请用程序实现判断两只老虎的体重是否相同。
代码示例:
//分析:
//1,键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请录入第一只老虎的体重");
int weight1 = sc.nextInt();
System.out.println("请录入第二只老虎的体重");
int weight2 = sc.nextInt();
//2.比较
// String result = 体重1 == 体重2 ? "相同" : "不相同";
String result = weight1 == weight2 ? "相同" : "不相同";
System.out.println(result);
1.7 练习-求三个值的较大值
需求:
一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,请用程序实现获取这三个和尚的最高身高。
代码示例:
//1.定义三个变量记录和尚的身高
int height1 = 150;
int height2 = 165;
int height3 = 210;
//2.求出任意两个数字的较大值
int temp = height1 > height2 ? height1 : height2;
//3.再拿着这个较大值跟第三个数进行比较,求出三个数字的最大值
int max = temp > height3 ? temp : height3;
System.out.println(max);
1.8 运算符的优先级
小括号优先于所有。
想要让谁先运行,就把谁给括起来就可以了。
第二章 流程控制语句
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。
2.1 流程控制语句分类
顺序结构
分支结构(if, switch)
循环结构(for, while, do…while)
2.2 顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
顺序结构执行流程图:
2.3 分支结构:if语句
if语句格式1
格式:
if (关系表达式) {
语句体;
}
执行流程:
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体
③如果关系表达式的值为false就不执行语句体
④继续执行后面的语句内容
示例:
public class IfDemo {
public static void main(String[] args) {
System.out.println("开始");
//定义两个变量
int a = 10;
int b = 20;
//需求:判断a和b的值是否相等,如果相等,就在控制台输出:a等于b
if(a == b) {
System.out.println("a等于b");
}
//需求:判断a和c的值是否相等,如果相等,就在控制台输出:a等于c
int c = 10;
if(a == c) {
System.out.println("a等于c");
}
System.out.println("结束");
}
}
练习1:老丈人选女婿
需求:
键盘录入女婿的酒量,如果大于2斤,老丈人给出回应,否则没有任何回应
代码示例:
//分析:
//1.键盘录入女婿的酒量
Scanner sc = new Scanner(System.in);
System.out.println("请输入女婿的酒量");
int wine = sc.nextInt();//5
//2.对酒量进行一个判断即可
if(wine > 2) {
System.out.println("不错哟,小伙子!");
}
练习2:考试奖励
需求:
键盘录入一个整数,表示小明的考试名次,如果名次为1,小红可以当小明的女朋有了。
代码示例:
//分析:
//1.键盘录入一个整数,表示小明的考试名次
Scanner sc = new Scanner(System.in);
System.out.println("请输入小明的名次");
int rank = sc.nextInt();
//2.对小明的考试成绩进行判断即可
if(rank == 1){
System.out.println("小红成为了小明的女朋友");
}
第一种格式的细节:
-
如果我们要对一个布尔类型的变量进行判断,不要写==,直接把变量写在小括号中即可。
-
如果大括号中的语句体只有一条,那么大括号可以省略不写
如果大括号省略了,那么if只能控制距离他最近的那一条语句。
建议:自己不要去写,如果别人这么写了,你要能看懂即可。
if语句格式2
格式:
if (关系表达式) {
语句体1;
} else {
语句体2;
}
执行流程:
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体1
③如果关系表达式的值为false就执行语句体2
④继续执行后面的语句内容
示例:
public class IfDemo02 {
public static void main(String[] args) {
System.out.println("开始");
//定义两个变量
int a = 10;
int b = 20;
//需求:判断a是否大于b,如果是,在控制台输出:a的值大于b,否则,在控制台输出:a的值不大于b
if(a > b) {
System.out.println("a的值大于b");
} else {
System.out.println("a的值不大于b");
}
System.out.println("结束");
}
}
练习1:吃饭
需求:
键盘录入一个整数,表示身上的钱。
如果大于等于100块,就是网红餐厅。
否则,就吃经济实惠的沙县小吃。
代码示例:
//分析:
//1.键盘录入一个整数。表示身上的钱。
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数表示身上的钱");
int money = sc.nextInt();
//2.对钱进行判断
if(money >= 100){
System.out.println("吃网红餐厅");
}else{
System.out.println("福建大酒店");
}
练习2:影院选座
需求:
在实际开发中,电影院选座也会使用到if判断。
假设某影院售卖了100张票,票的序号为1~100。
其中奇数票号坐左侧,偶数票号坐右侧。
键盘录入一个整数表示电影票的票号。
根据不同情况,给出不同的提示:
如果票号为奇数,那么打印坐左边。
如果票号为偶数,那么打印坐右边。
代码示例:
//分析:
//1.键盘录入票号
Scanner sc = new Scanner(System.in);
System.out.println("请输入票号");
int ticket = sc.nextInt();
if(ticket >= 1 && ticket <= 100){
//合法
//2.对票号进行判断
if (ticket % 2 == 0) {
//偶数
System.out.println("坐右边");
} else {
//奇数
System.out.println("坐左边");
}
}else{
//票号不合法
System.out.println("票号不合法");
}
if语句格式3
格式:
if (关系表达式1) {
语句体1;
} else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
执行流程:
①首先计算关系表达式1的值
②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
④…
⑤如果没有任何关系表达式为true,就执行语句体n+1。
练习1:考试奖励
需求:
小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,
假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。
分析:
①小明的考试成绩未知,可以使用键盘录入的方式获取值
②由于奖励种类较多,属于多种判断,采用if…else…if格式实现
③为每种判断设置对应的条件
④为每种判断设置对应的奖励
代码示例:
//95~100 自行车一辆
//90~94 游乐场玩一天
//80 ~ 89 变形金刚一个
//80 以下 胖揍一顿
//1.键盘录入一个值表示小明的分数
Scanner sc = new Scanner(System.in);
System.out.println("请输入小明的成绩");
int score = sc.nextInt();
//2.对分数的有效性进行判断
if(score >= 0 && score <= 100){
//有效的分数
//3.对小明的分数进行判断,不同情况执行不同的代码
if(score >= 95 && score <= 100){
System.out.println("送自行车一辆");
}else if(score >= 90 && score <= 94){
System.out.println("游乐场玩一天");
}else if(score >= 80 && score <= 89){
System.out.println("变形金刚一个");
}else{
System.out.println("胖揍一顿");
}
}else{
//无效的分数
System.out.println("分数不合法");
}
原创文章,作者:,如若转载,请注明出处:https://blog.ytso.com/273755.html