*自学总借,如有错误,欢迎指正*
1:比较运算符&逻辑运算符::比较运算符>(==,<=,>=,!=,<,>instanceof(检查是否是类的对象))>结果都是布尔类型,注意不要将==写成=;
逻辑运算符>(!,&,|,^,&&(短路),||(短路))
2:逻辑运算符::^(如果两边相同则为假);
&&(如果左边为假右边不参加运算,这比&具有高效性,其他与&一样);
||(如果左边为真右边不参加运算,这比|具有高效性,其他与|一样);
3:位运算符::&,|,^(一个数异或同一个数两次,结果还是这个数),~(取反:~6=-7:取反码再加1=~原数) 注意>都是再二进制的环境下运算的,1位真,0为假。
4:移位运算符::<<(左移几次就是该数乘以2的几次方)
>>(右移几次就是该数除以2的几次方)(对于高位出现的空位,原来高位是什么就补什么)
>>>(无符号右移,与>>唯一不同就是无论原来高位是什么都补0)
5:位运算符练习1::最有效的方式算出2乘以8?原始方法:计算机的二进制乘法(跟十进制的乘法一样)
最有效方法:2<<3(当乘数是2的倍数用左移;推出右移的应用)
6:位运算符练习2::对两个数值进行交换(不使用中间变量)?
原始方法:定义中间变量(实际开发中使用,因为阅读性较强)
进阶方法:两数相加,再减分别减去对应的数得对应得数(不推荐,数大了相加容易超出对应数据类型得范围);异或:一个数异或同一个数两次等于这个数(面试用)这两个方法阅读性不强。
7:三元运算符::格式>(条件表达式)?表达式1:表达式2;条件为真则结果为表达式1·,为假则结果为表达式2。
8:三元运算符应用::求两个数中的最大数?int a,b;max=(a>b)?a:b;(内容不多可以不写括号)
求三个数中的最大数?int a,b,c;int temp=(a>b)?a:b;int max=(temp>c)?temp:c;或者int max=(a>b?a:b)>c?temp:c;(但阅读性不行)
9:语句-if格式一::程序流程控制(顺序结构,条件结构,选择结构,循环结构)
if(条件表达式){执行语句;}
注意:if语句必须要明确自己的控制范围即后面的{},但是如果后面是单条语句则不需要。单条语句是个整体,如:if(条件表达式){执行语句;}这也是一个单条语句。
10:语句-if格式二::if(条件表达式){执行语句;}else{执行语句;}
if语句可以输出为初始化的变量,因为if语句只要满足条件必须输出这个变量,也可以理解为强制初始化并输出。
注意 :三元运算符就是其简写形式,但是有局限性,其使用应在当if esle运算后有一个具体的结果时,可以简化成三元运算符,也就是说其不能打印只能运算出结果(结果就是数据值)。
11:语句-if格式三::if(条件表达式){执行语句;}else if(条件表达式){执行语句;}…else{执行语句}(只有一个语句会执行)
注意:顺序结构在整个程序中,故语句会按顺序执行下去直到结束。
分号是语句的结束标志。if(false);{Sysrtem.out.println("if“);}前后没有关系。
12:局部代码块::主函数里的变量叫局部变量,主函数中的{执行语句;}花括号叫局部代码块。
应用>假如后面不需要此变量,就用{}封装使变量释放内存,节省内存空间,优化。总而言之,局部代码块可以定义局部变量的生命周期。
13:if语句练习-星期::注意:if()括号中是布尔类型,i=1不是,应为i ==1,因为=是赋值运算符,==是逻辑运算符。还有,定义类名是注意别多打空格。
14:if语句练习-季节::(当条件对应内容一致时,要将条件合并)注意:cd是退档dos命令符>语句是以;结束,别打太快打成:>&&是逻辑与,||是逻辑或,与是一否全否,或是一对全对,如:if(season==1||season==2||season==3);>特别,思维要严谨,要考虑周道;特别注意,解决问题的方法不止一个,要多思考。>还有打代码的时候注意多摁ctrl s保存刷新。
15:选择结构 ::格式:switch(表达式){case 取值一:执行语句;break;…… ;defaulrt:执行语句;break;} 。
其中,表达式是被选择的对象,case标识被选答案 ,取值是答案值,执行语句是答案值具体内容 ,break是选中答案后起结束选择跳出switch的作用,如果case都不对,则default(默认)是默认的选择。注意:每个被选答案都要以break结尾。
使用范围:只能选择byte,char,int,char四种类型。(其他范围(如:long)太大不switch)
特点:答案前后无顺序,但是执行有顺序,先顺序执行case,最后default。挨着大括号的break可以省略不写,因为往下走有花括号意味着结束。当default没有break,case都不对,而且default下面还有case,那么default的执行语句输出后还会往下执行,这时default下面可执行的case将直接输出执行语句不用与被选择对象匹配(因为它已经有答案匹配了),直到break或者花括号。
16:语句-switch-练习::当多答案标识对应一个答案内容,则可以只写一个答案内容。如:case 1: case 2:case3:System.out.println(" ***");
17:if和switch的语句的区别::if>一:对具体的值进行判断;二:对区间进行判断;三:对运算结果是布尔类型的表达式进行判断;
switch>一:对具体的值进行判断;二:值的个数经常是固定的;
所以,对几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案加载进内存,执行的效率相对高一点。
18:语句-while::格式:while(表达式){执行语句;}
循环必须有的两个条件:一:循环条件;二:循环次数(防止死循环)。
注意:while(条件表达式);{执行语句;}时,while是没有循环体的,因为多了分号。
19:语句-do while::格式:do(执行语句;)while(条件表达式);
特点:无论条件是否满足,do都要执行一次。
20:while练习-累加思想::注意:输出一次就把输出语句放在循环体外面(累加如此)。变量初始化。
21:while练习-计数器思想::特别注意:i不能为0,因为要求是1到100的数字。0取余任何数都为0。
22:语句-for::格式:for(初始化表达式;循环条件表达式;循环后的操作表达式){执行语句;(循环体)}
转圈顺序:初始化表达式先执行且只执行一次>若循环条件表达式为真(为假直接结束循环)>循环体>循环后的操作表达式>判断循环条件表达式真假>……
注意:理解表达式这三个字。for(System.out.println("a"),int s=0;x<=4;System.out.println("b"){System.out.println("c");x++;}这段代码是对的,要理解这三个字。此外,不要忽略循环增量x++,其控制循环次数防止死循环。
23:for练习-for与while的区别::一:for和while可以互换。二:格式上的不同,在使用时有点小区别:如果需要通过变量来对循环进行控制,改变量只作为循环增量存在时,区别就体现出来了。(由于循环变量的作用范围不同,导致while较之容易浪费内存(因为在花括号后还可以输出循环一次变量),故for用的较多)
无限循环最简单的形式:while(ture){}。for(;;){}。
24:循环结构的使用场景:: 一:当对某些代码执行很多次时,使用循环结构完成。二:当对一个条件进行一次判断时,可以使用if。三:当对一个条件进行多长判断时,可以使用while。
注意:在使用循环时要明确哪些语句参与循环,哪些不参与。
循环通常情况下,需要定义条件,需要控制次数。