第三节课的java

第一节课

byte类型
128 // -128
129 // -127
就是说储存的byte类型,如果走到最大值,会从头走回来再走一圈。
128比较特殊

浮点型怎么算:

为什么是long --float
java语言中一个字符,占有两个字节,所以char可以表示一个汉字。而其他语言中的有的占用一个字节,就不可以了,所以就不一定了。

运算符

正确叫法

整数相除只能得到整数

%是得到除法运算的 余数
/是得到除法运算的 商

字符串与谁+,最后得到的都是字符串类型;

为了让结果在同一行,输出时用 + 连接输出结果。不论结果是字符还是整数。

第二节课:++和–用法
作用:

示例;
为变量自增自减1,变量可以,常量不可以使用++ /–。
单独使用没有经过运算时,++x与x++输出的结果是一样的。

结果是:

写在++前面是,先把自身加1然后在赋值给另一个变量,写在后面是先赋值后自增减1.

就是说++在后时,参与运算时它所用的值是原来值。
重点

第五节;算法运算符

加法的三种用法:

7
4
a
98
helloa1
98hello
第六节;赋值运算符

示例:
结果 :30

其他的依次类推理解。

第七节;赋值运算符的面试题

+=想当与隐含的强制类型转换
如:

第八节;比较运算符
==,!=,<=,>=
特点:无论你的操作是简单还是复杂,结果是boolean,就是只有 true \false

boolean flag = (a b );这句话的意思是说把ab的结果复制给变量名为flag的布尔类型。

这是个错误的演示:
boolean flag =(a == b ); 就是把b赋值给a,然后再把a给flag,但是a是int型,所以无法给boolean,所以无法识别。

本章代码:

第九节;逻辑运算符
逻辑运算符两边必须都是布尔类型boolean。例如不能写成 3<x<5,只能写成x>3&x<5.

代码
逻辑运算符,有false结果则为false。

|逻辑与,只要有true 就为 true。

逻辑异或
相同为false 不同为true。
举例:情侣关系:男男 ,女女. false
男女 , 女男 true

逻辑非
偶数个!,J结果不改变,

第十节;&&和&运算符
开发中常用的是:|| ,&& ,!
因为当能够得到结果是,就不在接着判断了,减少运算量。

左边是false后右边就不执行了。

int x,y;
x=3 .y= 4;
x++ == 3 为真 。因为x++ 是先运算,及先比较3==3 ,在自加1.
y++ == 4 为真
++x == 3 为假
++x == 3 & y++ == 4 为假

例如:

最后一个,输出结果为:4 4 false 因为&& 当第一个为false后,就不在往下运行了,所以y++相当于没有执行。
第三个 , 输出结果为:4 5 false
第十一节;位运算
& , | ,^ , ~ 也叫位运算。
当& 两端是数据时,是做位运算。当时boolean是逻辑运算。

几种运算符的算法:
都是转为2进制用补码来算,正数的原反补 一样,然后再算。
& 有0 就为 0
| 有1 就为 1
^ 相同为 0 ,不同为1

~计算:
负数的反码: 符号位不变,其他的 0 变1 ,1变0。
补码是反码加1

第十二节;位异或运算

某一个值被一个数据异或两次,该数的本身不变。
可以用于简单的加密,发给一个异或的值,然后告诉你用谁异或的,然后你再异或回来

第十三节;面试位异或运算
让两个数据交换位置用,开发中用的是引一个“换位置”的方法,来实现。

但是面试时要用异或来解答,可能换位置的方法太简单了。

a=a^b
b=a^b //先不要把a算出来,代入理解,此时 =右边相当于a被异或两次,所以a不变,复制后相当于把a给了b。
a=b^a // 同上
左边aba 右边a^b
异或可以用来做数据交换:

方式三

方式四

第十四节;面试位异或运算
<< 左移 :左边最高位丢弃,右边补齐 0。

右移 :最高位是0,左边补齐0;最高位是1 ,左边补齐 1.

无符号右移 无论最高位是0或者是1,左边补齐0.
十进制的左移是乘以 10 的次方。所以2进制的左移是乘以2的次方
3<< 2 结果为:3x22=12.
同理右移为 除以 2的
次方

此时的24>>>2 也是 6.因为24 为正数。

负数的右移。

与 >>> 的区别
首先算出补码,然后运算,然后在退出原码

计算的是-24

面试题:
请用最有效的方式写出计算2乘以8的结果?
2*8是可以的,但是要用左移的方法来回答。2 << 3 。2左移3位,相当于 2^3。

正数的原反补都一样所以 原码也是 00111111 11111111 11111111 11101000
第十五节;三目运算符
获取两个数中的较大值
三目运算符的表达式:比较表达式?表达式1:表达式2;
ture输出表达式1,false输出表达式2
int x =1, int y =2;
int z = ( x > y ) ? x : y ;
System.out.printl(“z:”+z);
输出结果为:z:2 分析:首先为false 所以表达式2 (这里是y)。y=2 。所以是把y赋值给z。

容易错误点:
如果写成 int z = ((x=y) ? x:y ); 就会报错,因为x=y 最后是int类型。所以,而要求必须是boolean所以好会报错。

找出三个数中的最大值
int temp = ()

补充: int max2 = a> b?a>c?a:b>c?b:c 这种写法不推荐。

如果 a>b为true则执行(判断 a>c ? 如果为true)则输出a。如果为false则执行后面的判断b>c是否对,如果false输出c.如果true输出b。
帮助理解的分析(可以不看)
判端三个谁最大,这样两步就可以搞定了。只要找出大的,就行。不用管谁是第二大,所以二步就可以,而排序则不行,如果是排序则必须找出第二大,所以两步不行。

判断两个值相等吗?
没必要写boolean flag = ( mn ) ? true :false;因为 mn 本身就是一个布尔类型。

第十七节;键盘录入的基本格式讲解
为了让程序更灵活

导包是jdk中的文件,没有为什么

import java.util.Scanner 放在class前。
创建键盘录入数据对象 Scanner sc = new Scanner (system.in); 自己理解,可以看做是sc不断扫描 键盘输入,然后赋值给sc 。
int x = sc.nextInt(); 通过sc这个对象,调用nextInt()这个方法。 因为有(),所以是方法。加()的是方法,不加的是对象 。
int x = sc.nextInt(); 表示接收数据
过程在图中:

输入两个数求和

判断输入两个数的较大值

键盘录入三个判断谁大

判断两个数中的那个大

第二十节 语句基础:
理解:看看:

顺序结构,从上到下
选择结构:if switch
第一种
注意事项
1.
if 后边的结果肯定是boolean型

if 的省了也不会报错,建议永远不要省略;
if 语句后的if{},如果你忘记写其实也是可以执行的,但是它就只能控制后面的一句内容,而不能控制多句。如下:

本来是不输出任何一句,但是实际结果是;over:

加了个; 就认为是结束了。

结果是:b的值是100
over
一般来说有左大括号就没有分号,有分号就没有左大括号。

第23节:if的第二种用法
用法的格式

注意点:
1.else后没有表达式;

找出键盘录入的最大值:
定义一个max来获取较大值。

注意:判断一个数据是奇数还是偶数,然后输出它是奇数还是偶数。
if(x%2 ==0 )这句话我没想到

第二十五节 三元与if的区别

string 是字符串类型的; int 是整数型
三元与if第二种用法的区别:
如果是赋值两个一样
如果是if后是输出语句时就不一样了(如图中的就是直接输出 100是奇数)因为三元运算符是一个运算符,而运算符操作完毕后就应该有一个结果,而不是输出语句。

可以用三元实现都可以用if改,但是if 不一定都可以用三元改。

第二十六节 if的第三种用法
用法表示式

就是依次往下执行,如果1不满足就执行2 ,2不满足就执行3 。如果有一个满足了,就不在执行下面的了。
注意点,可以用多个,但是只要不是最后一个就要用else if 而不是else,只有最后一个才是else

score 成绩:分数
if 的第三种用法实例;

这样写满足了基本要求,但是别人可能输入的数据不是你想额那样。一本题为例就是说,人家输入一个200分或者-199分,怎么办。所以要加个如果不符合输出,你的输入不符合要求
做软件要考虑
要考虑正确数据,错误数据,边界数据。
本题改进如下:

第二十七节 练习题
y=2x+2, 在程序中不能这样写,要写成 y=2*x+2
题目:

过程:

第二十八 练习题
题目;

答案:
这一种太长了
int month=sc.

改进

改进2

判断三个数的最大值:

if (a>b){
if (a>c){
max=a;
}
else{
max=b;
}
}
这可以双重套用if语句。if条件语句的语句体部分也可以是个语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值