网站建设ppt百度文库,网站建设服务哪里便宜,网络营销应具备的技能,网上做家教哪个网站【本节目标1】熟练掌握运算符
【本章目标2】熟练掌握循环
万字讲解#xff0c;十分详细#xff0c;有大量#xff08;简单#xff09;代码帮助理解和大量的#xff08;简单#xff09;举例与总结。
1.运算符
1.什么是运算符
计算机最基本的用途之一就是执行数学运算…【本节目标1】熟练掌握运算符
【本章目标2】熟练掌握循环
万字讲解十分详细有大量简单代码帮助理解和大量的简单举例与总结。
1.运算符
1.什么是运算符
计算机最基本的用途之一就是执行数学运算比如 int a 10; int b 20; ab; ab; 上述和等就是运算符即:对操作数进行操作时的符号不同运算符操作的含义不同。 作为一门计算机语言Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符(*/)、关系运算符( )、逻辑运算符、位运算符、移位运算符以及条件运算符等。
2.算术运算符
1.基本四则运算符加减乘除模 - * / % int a 20; int b 10; System.out.println(ab); System.out.println(a-b); System.out.println(a*b); System.out.println(a/b); System.out.println(a%b); 注意
1.都是二元运算符使用时必须要有左右两个操作数
2.int/int 结果还是int而且会向下取整 Int a 3; int b 2; System.out.println(a/b); //在数学中应该是1.5但是在java中是1会向下取整取小数点之后的整数 double d a*1.0/b; //这样可以得到数学中的答案 System.out.println(b); 3.做除法和取模时右操作数不能为0 int a 1; int b 0; System.out.println(a/b); //报错 4.%不仅可以对整型取模也可以对double类型取模但是没有意义一般都是对整型取模 System.out.println(11.5%2.0); 1.5 5.两侧操作类型不一致时向类型大的提升 System.out.println(10.2); // 的左侧是int右侧double在加之前hi被提升为double 输出1.2 6.增量运算符
该种运算符操作完成后会将操纵的结果赋值给左操作数。 int a 1; a2; //相当于aa2 System.out.println(a); //输出3 a-1; //相当于aa-1; System.out.println(a); //输出2 a*3; //相当于a*3 System.out.println(a); //输出6 a/3; //相当于aa/3; System.out.println(a); //输出2 a%33; //相当于aa%2 System.out.println(a); //输出2 注意只有变量才可以使用该运算符常量不可以因为常量不可以改变
7.自增/自减运算符 --
是给变量的值1--是给变量的值-1. int a 1; a; //后置表示给a的值1此时a的值为2因为直接结束所以在这里前置和后置没区别 System.out.println(a); //注意后置是先使用再加 因此在这里打印2 System.out.println(a); // 在这里打印3 a; //前置表示给a的值1 System.out.println(a); // 注意前置是先给变量1再进行使用因此这里打印5 System.out.println(a); //输出5 //--操作符给操作-1与含义类似 注意: 1.如果单独使用[前置]和[后置]没有任何区别 2.如果混合使用[前置]先1然后使用变量1之后的值[后置] 先使用变量原来的值表达式结束时给变量1 3.只有变量才能使用自增/自减运算符常量不能使用因为常量不允许被修改
3.关系运算符
关系运算符主要与六个 ,,,,其计算结果是true或者false int a 10; int b 20; //注意在java中表示赋值要与数学中的含义区分 //在java中表示相等 System.out.println(ab); //false System.out.println(a ! b); //true System.out.println(ab); //true System.out.println(ab); //false System.out.println(ab); //true System.out.println(ab); //false 注意当需要多次判断时不能连着写比如3a5,Java程序与数学不一样
4.逻辑运算符号重点
逻辑运算符号主要有3个 || 运算结果都是boolean类型
1.逻辑与
语法规则: 表达式1表达式2左右表达式必须是boolean类型的结果相当于现实生活中的且比如: 如果是学生并且 带有学生证 才可以享受半票两个表达式都为真结果才是真只要有一个是假结果就是假。 Inr a 1; int b 2; System.out.println(a1 b2); //左为真 且 右为真 则结果为真 System.out.println(a1 b100); //左为真 但 右为假 则结果为假 System.out.println(a100 b2); //左为假 右边直接不看 结果为假 System.out.println(a100 b100); // 左为假 右边直接不看 结果为假 注意一个为假则为假
2.逻辑或||
语法规则: 表达式1 || 表达式2左右表达式必须是boolean类型的结果相当于现实生活中的或比如:买房子交钱时全款 或者按揭都可以如果全款或者按揭房子都是你的否则站一边去。 int a 1; int b 2; System.out.println(a1 || b2); //左为真 且 右为真 则结果为真 System.out.println(a1 || b100); //左为真 但 右为假 则结果为真 System.out.println(a100 || b2); //左为假 看右边为真 结果为真 System.out.println(a100 || b100); // 左为假 右为假 结果为假 注意左右表达式中至少与一个位置则结果为真
3 逻辑非
语法规则表达式
真变假假变真 int a 1; System.out.println(!(a1)); //a1为true取个非就是false System.out.println(a ! 1); //a !1为false取非就是true 4. 短路求值 和 || 遵守短路求值规则 System.out.println(1020 10/00); //打印false System.out.println(1020 || 10/00); //打印true 我们都知道计算10/0计算机会报异常但是上面的代码却能正常运行说明10/0并没有被求值
1.对于 如果左侧表达式值为 false,则表达式结果一定是 false,无需计算右侧表达式
2.对于||,如果左侧表达式值为 true,则表达式结果一定是true,无需计算右侧表达式
3.和|如果表达式结果为 boolean 时,也表示逻辑运算但与相比它们不支持短路求值. System.out.println(1020 10/00); //异常 System.out.println(1020 || 10/00); //异常 5.位运算符
java 中数据存储的最小单位是字节而数据操作的最小单位是比特位,字节是最小的存储单位每个字节是由8个进制比特位组成的多个字节组合在一起可以表示各种不同的数据位运算符主要有四个:|,~,^ 是一元算符外其余都是二元运算符 位操作表示 按二进制位运算计算机中都是使用二进制来表示数据的(01构成的序列),按位运算就是在按照二进制位的每一位依次进行计算.
1.按位与如果两个二进制位都是1则结果为1否则为0 2.按位或 | 如果两个二进制位都是0则结果为0否则为1 注意当和|的操作数为整数的intshortlongbyte的时候表示按位运算当操作数为boolean的时候表示逻辑运算。
3.按位取反~如果该位为0则转为1如果该位为1则转为0 注意: 1.0x前缀的数字为十六进制数字十六进制可以看成是二进制的简化表示方式一个十六进制数字对应4个二进制位. 2.0xf 表示10 进制的 15也就是二进制的 1111 3. printf 能够格式化输出内容x 表示按照十六进制输出
4.\n表示换行符
5.如果两个数相同则异或为0
6.移位运算
移位运算符有三个, ,,都是二元运算符号且都是按照二进制比特位来运算的。
1.左移:最左侧位不要了最右侧补0. Int a 0x10; System.out.printf(%x\n,a1); //运算结果是按照十六进制打印的 20 注意像左移位时丢弃的是符号位因此正数左移可能会编程负数。
2.右移:最右侧位不要了最左侧位符号位正数补0负数补1 int a 0x10; System.out.printfln(%x\n,a1); //运行结果是按照十六进制打印的 8 int b 0xffff0000; System.out.printfln(%x\n,b1); // 执行结果按照十六进制打印 ffff8000 3.无符号右移最右侧位不要了最左侧补0 Int a 0xffffffff; System.out.printf(%x\n:,a1); //运行结果是按照十六进制打印 7fffffff 注意 1.左移1位相当于原数字*2左N位相当于原数字*2的N次方 2.右移1位相当于原数字/2右N位相当于原数字/2的N次方
3.由于计算机计算移位效率高于计算乘除,当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.
4.移动负数位或者移位位数过大都没有意义
7.条件运算符
条件运算符只有一个 表达式1?表达式2:表达式3 当表达式1的值为true时,整个表达式的值为表达式2的值当表达式1的值为false时,整个表达式的值为表达式3的值也是Java 中唯一的一个三目运算符,是条件判断语句的简化写法 //求两个整数的最大值 int a 10; int b 20; int max ab? a : b; 注意
1.表达式2和表达式3的结果要是不同类型的时候除非能发生类型隐式转换 int a 10; int b 20; int c ab?1:2.0; 2.表达式不能单独存在其参生结果必须要被使用。 int a 10; int b 20; ab?a:b; //报错不是语句 8.运算符的优先级
在一条表达式中各个运算符可以混合起来运算但是运算符的优先级不同比如*和/的优先级
要高于和-有些情况下稍不注意可能会造成很大的麻烦。 //求a和b的平均值 int a 10; int b 20; int c a(b-a)1; System.out.printfln(c); 上述表达式中由于的优先级高于,因此a先和b-a的结果做加法整体为20最后再进行右移因此结果为10.
注意运算符的优先级我们不必记忆可能存在歧义的代码中加上括号即可。
2. 循环
1.概述
我的曾经: 早上8:00起床---洗漱---吃早饭---上课--吃午饭---上课---运动---吃完饭---玩手机---睡觉每天的生活貌似都是这么规律顺序的做着每件事前途一片渺茫~~~直到有一天 我幡然醒悟不好好学习可能要卖红薯奋发图强可能离梦想会更近于是我选择来到手撕代码看博客从此:早上6:00起床---看书敲代码--.上课看编程书籍---吃午饭---刷题--上课看书---吃晚饭---总结--看科技新闻---睡觉 就这样日复一日的努力着感觉每天都很充实生活看到了希望~~~再后来 秋招来了我用自己所学一次次刷新着手中ofer的记录那一刻我被自己感动了
2.顺序结构
顺序结构比较简单按照代码写的顺序一行一行的执行。 System.out.println(aaa); System.out.println(bbb); System.out.println(ccc); //执行结果 aaa bbb ccc 如果调整代码的书写顺序则执行顺序也发生变化 System.out.println(bbb); System.out.println(aaa); System.out.println(ccc); //执行顺序 bbb aaa ccc 3.分支结构
3.1 if语句
1.语法格式 if布尔表达式{ //语句 } 如果布尔表达式结果为true执行if中的语句否则不执行
比如小明如果这次考试有考到90分以上奖励一个15promax int score 92; if(score90){ System.out.println(15promax); } 2.语法格式 if布尔表达式{ //语句1 }else{ //语句2 } 如果布尔表达式结果为true则执行if中语句如果不是则执行else中的雨具
比如小明如果这次考到90分以上奖励15promax如果没考到给我一个15promax int score 0 ; if(score90){ System.out.println(15promax } else{ System.out.println(给我一个promax); } 3.语法格式习题 if(布尔表达式{ //语句1、 } else if{ //语句2 } else{ //语句3 } 表达式1成立执行语句1否则表达式2成立执行语句2否则执行语句3比如:考虑到学生自尊不公开分数排名因此: 分数在[90,100]之间的为优秀 分数在[8090)之前的为良好 分数在[7080)之间的为中等 分数在[60,70)之间的为及格 分数在[060)之间的为不及格 错误数据
按照上述办法通知学生成绩 if(score90){System.out.println(优秀);
}
else if (score80 score 90){System.out.println(良好);
}
else if (score70 score 80){System.out.println(中等);
}
else if (score60 score 70){System.out.println(及格);
}
else if (score60){System.out.println(不及格);
}
else{System.out.println(错误输入);
} 【小练习】
判断一个数是奇数偶数 int num 10; if(num%20){ System.out.println(num是偶数); } else { System.out.println(是奇数): } 【小练习】
判断一个数字是正数负数还是零 int num 0; if(num0){ System.out.println(正数“ } else if(num0){ System.out.println(负数“ } else{ System.out.println(零“ } 【小练习】
判断一个数是否为闰年 int year 2000; if(year %100 0){ //判断世纪闰年 if(year % 400 0){ System.out.println(是闰年“ } else{ System.out.println(不是闰年“ } } else{ if(year%40){ System.out.println(是闰年“ } else{ System.out.println(不是闰年“ } } 【注意事项】
1.代码风格 //风格1 推荐 int x 10; if(x 10){ //语句1; } else{ //语句2 } //风格2 nt x 10; if(x 10) { //语句1; } else { //语句2 } 虽然两种方式都是合法的但是java中更推荐风格1 {放在同一行显得很紧凑
2.分号问题 int x 20; if(x 10) { System.out.printfln(hehe) } //运行结果 hehe 此外多写了一个分号导致分号成为了if语句的语句体而{ }中的代码已经和if无关的代码块。
3.悬垂else问题 int x 10; int y 10; if(x 10) if( y 10) System.out.printnln(aaa); else System.out.printnln(bbb); if/else 语句中可以不加大括号但是也可以写语句只能写一条语句。此时else与最近的if结合但是不建议这样用。
3.2 switch语句
基本语法 switch(表达式{ case常量值1{ 语句1 break } case常量值2{ 语句2 break } ... default:{ 内容都卜满足执行语句 break } } 执行流程
1.先计算表达式的值
2.和case依次比较一旦响应的匹配就执行该项下的语句直到遇到break时结束
3.当表达式的值没有与所列项匹配时执行default
代码示例
根据day的值输出星期 int day 1; switch(day){ case 1: System.out.printnln(星期一); break; } case 2: System.out.printnln(星期二); break; } case 3: System.out.printnln(星期三); break; } case 4: System.out.printnln(星期四); break; } case 5: System.out.printnln(星期五); break; } case 6: System.out.printnln(星期六); break; } case 7: System.out.printnln(星期日); break; } default: System.out.printnln(输入有误); break; } [注意事项】
1.多个case后的常量值不可以重复
2.switch的括号内只能是以下类型的表达式
基本类型bytecharshortint注意不能是long类型
引用类型String常量字符串枚举类型 double num 1.0; switch(num){ case 1.0: System.out.println(hehe); break; case 2.0 System.out.println(haha); break; } //编译报错 不兼容类型从double到int会有可能数据缺失 注意break不要遗漏否则会失去多分支选择“的效果 int day 1; switch(day){ case 1: System.out.println(星期一); case 2: System.out.println(星期二); break } //运行结果 星期一 星期二 注意switch不能表达复杂的条件 //例如如果num的值也在10到20之间就打印hehe //这样的代码使用if很容易表达出来但是谁用switch就无法表达 ifnum10 num20{ System.out.println(hehe); } 注意switch虽然支持嵌套但是很丑一般不推荐 int x 1; int y 1; switch(x){ case 1: switch(y){ case 1 : System.out.println(hehe); break; } break; case 2: System.out.println(haha); break; } 代码的美观程度也是一个重要的标准毕竟这是一个看脸的时代
综上我们发现switch的使用局限比较大
4.循环结构
4.1 while循环
基本语法格式 while(循环条件{ 循环语句 } 循环条件为true则执行循环语句否则结束循环
代码示例1打印1-10 的数字 int a 1; while(a10){ System.out.println(a); a; } 代码示例2计算1-100的和 int n 1; int result 0; while(n100){ resultn; n; } System.out.println(m); //执行结束5050 代码示例3计算5的阶乘 int m 1; int result 1; while(n5){ result *n; n; } System.out.println(n); //执行结果 120 代码示例4计算1 2! 3! 4! 5! int n 1; int count 1; int result 0; while(n5{ while( n--){ count*n; } resultcount; n; } System.out.println(result); 这里我们发现当一个代码中带有多重循环的时候代码的复杂程度就大大提高了因此比较复杂的代码容易出错。后面我们会想办法来解决这个问题
注意事项
1.和if 类似whie 下面的语句可以不写但是不写的时候只能支持一条语句.建议还是加上{ }
2.和if 类似while 后面的建议和 while 写在同一行. 3.和if 类似while 后面不要多写分号否则可能导致循环不能正确执行 int num 1; while(num 10);{ System.out.println(result); num; } //执行结果 无任何输出程序死循环 此时为了while的语句体这是一个空语句实际的部分和循环无关此时循环条件num10恒成立导致代码死循环了。
4.2 break
break的功能是让循环提前结束
代码示例
找到100-200中第一个3的倍数 int num 100; while(num 200){ if(num%3 0){ System.out.println(找到了3的倍数); break } num } //执行结果 找到了3的倍数为102 执行到break就会让循环结束。
4.3 continue
continue的功能是跳过这次循环立即进入下次循环
代码示例找到100-200中所以3的倍数 int num 100; while(num 200){ if(num % 3 !0){ num; //这里的不要忘记否则会死循环 countine } System.out.println(找到了3的倍速为num); num; } 执行到countinue语句的时候就会立刻进入下次循环判定循环条件从而不会执行到下方的打印语句。
4.4 for循环
【基本语句】 for(表达式1表达式2表达式3{ 表达式4 } 表达式1用于初始化循环变量设置在循环最开始时执行且执行一次
表达式2循环条件满则循环继续否则循环结束
表达式3循环变量更新方式
【执行过程】
1234--234--234--直到2为false循环结束
【代码示例】
1.打印1-10的数字 for(int i 1; i 10; i){ System.out.println(i); } 2.计算1-100的和 int sum 0; for(i 1; i100; i){ sumi; } System.out.println(sum); // 执行结果5050 3.计算5的阶乘 int result 1; for(int i; i 5; i){ result * i; } System.out.println(result); 4.计算1 2 3 4 5 int sum 0; for(int i 1; i 5; i){ int tem p 1; for(int j 1; j i; j){ tmp * j; } sum tmp; } System.out.println(sum); 【注意事项】和while循环相似
1.和if 类似for 下面的语句可以不写但是不写的时候只能支持一条语句,建议还是加上{}
2.和if 类似for 后面的建议和 while 写在同一行. 3.和if 类似for后面不要多写分号否则可能导致循环不能正确执行4.和while循环一样结束单趟循环用continue结束整个循环用break
4.5 do while循环
【基本语法】 do{ 循环语句 }while9循环语句} 先执行循环语句再判断循环条件循环条件成立继续执行否则循环结束
例如打印1-10 int num 1; do{ System.out.println(num); num; }while(num 10); 【注意事项】
1.do while循环最后的分号不要忘记
2.一般do while很少用到更推荐for和while
5.输入输出
5.1 输出到控制台
基本语法 System.out.println(maas); //输出一个字符串带换行 System.out.print(sfd); //输出一个字符串不带换行 System.out.printf(formatmaf); //格式化输出 总结print;n输出的内容自带\nprint不带\n
printf的格式化输出方式和c语言的printf是基本一致
【代码示例】 System.out.println(“hello shousidaima”); int x 10; System.out.printf(x%d\n,x); 最后再给大家一些习题帮助大家掌握知识点和小结论
【第一题】 long float double boolean 都不可以作为switch的参数
除了这些基本数据类型后续说道的枚举String也可以作为Switch的参数 故选择A D. 希望对刚接触的小白有所帮助创作不易给个免费的赞和关注谢谢各位----------------------