运算;算术运算符;
在这里需要注意x++是先使用x在+1而++x是先对x+1再使用x。以此类推得出x–和--x代表的含义。int x=10;
int y=20; int z=(x++)*2;答案是20 int e=(++x)*2;答案是24
// 而e的结果可以表明一个问题,对于++x的处理是先对x+1在进行计算处理的。而x的结果是继承上边的// int q=(x++);答案是10
// int u=(++x);答案是12从这两个结果可以看出x++的计算是不进行加1计算的,但参加下一步的计算的x是再上一步的基础上加1的
// int r=(++y)*2+(x++)*2+(y++);答案是83第一个结果是42,先进行+1处理 ,第二个结果是20,没有进行+1处理,而第三个结果是21,继承上一步的y的值,也没有进行+1处理的。 ;
// 这也证明了一点,x++是先使用x然后再进行+1处理的,之所以结果没有进行+1处理我们可以简单认为是只有一个是只有一个计算式的原因
计算支持字符型和浮点型
整数除于浮点数转化为浮点数其实就是自动转换。取
取模取得是余数
关于如何判断水仙花数的Java语言public class First {
public static void main(String[] args) {
int a=371;
int b=a/100;
int c=a/10%10;
int d=a%10;
System.out.println(b);
System.out.println(c);
System.out.println(d);
if(b*b*b+c*c*c+d*d*d==a) {
System.out.println(a+"是一个水仙花数");
}
else {
System.out.println(a+"不是一个水仙花数");
// 在这里出现了一个状况,多定义了一个变量,定义一个变量一定根据你要求的结果所设的,别乱设,
}
}
}
结果是371是一个水仙花数
这里再次规范写程序的基本步骤
1首先定义变量 根据存在或你想要设几个原始数据和结果数据定义几个变量
再考虑变量用什么类型的。如果临时采用变量,那就设个中间变量。
2进行数据的处理,如a=x/100
3输出结果。
以上就是最简单最基础的写程序的步骤
举一个·实例;ublic class Frist {
//这是一个数据转移的案例
public static void main(String[] args) {
// TODO Auto-generated method stub
int x, y;
x=10;
y=30;
// 根据原始数据和结果数据定义几个变量
int temp;
// 定义了一个中间结果
temp=y;
y=x;
x=temp;
System.out.println(“x=”+x);
System.out.println(“y=”+y);
// 输出结果
x=30
y=10,
从这里可以看出这个中间变量其实是个暂时数据处理器,就如同搬房子的仓库,暂时存储。当你进行数据处理的时候,你可以选择借助中间数据,或直接同过。举个例子,x=10 y=20,要x与y进行还值,借助中间的变量,也就是利用一个中间值,x=x+y (此时下的值是30)y=x-y(再借助x) x=x-y(再借助y)
再解决编程问题是,不要只限制于一个思路,多想想,还有没有其他思 路,其他方法。
boolean a,b;
a=true;
b=false;
int z=6;
a=(2>3)&&5<z++;
System.out.println(a);
System.out.println(z);
结果false 6
boolean a,b;
a=true;
b=false;
int z=6;
a=(2>3)&5<z++;
System.out.println(a);
System.out.println(z)
答案是false 7
以上可以看出简洁与和非简介与的差别。在这里再介绍一下逻辑运算符之间会有什么样的关系。
在这里再通过写判断是否为三角形来简单介绍一下关系运算符和逻辑计算符如何·运用
import java.util.Scanner;
public class Practise {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a ,b,c;
boolean t;
Scanner scanner=new Scanner(System.in);
// new scanner属于构造方法·
// System in属于键盘输入,而System in属于屏幕输出
a=scanner.nextInt();
b=scanner.nextInt();
c=scanner.nextInt();
// 像nextInt()的使用是根据输入字节类型来判断使用的,像这种类型的还有nextbyte等
t=a+b>c&a+c>b&b+c>a;
if(t==true) {
System.out.println("是三角形");
}
else {
System.out.println("不是三角形");
}
}
位运算:
你要记住位运算和逻辑运算是两个不同的概念。逻辑运算的结果只能是true or false,他们后边表达式结果只能是逻辑运算,如c=!(a>0) 逻辑运算表达式是绝对不能带有数值的,你可以这样理解·逻辑运算是和布尔型值是息息相关的
位运算的计算是基于把你输入的数转化为二进制的数字。
按位取反:
int a=6;
int b;
b=a;
System.out.println(b);
答案是-7。
为什么呢,把6转化为二进制的后八位。得出的为00000110,这个符号是按位取反也就是转化为11111001,以1为开头的都是负数,在二进制的转化中存在一个补码,如果你要想明白11111001是怎么计算为-7的,你可以采用反补码的方式得到这个数的正数,其方式为先减1(末位数减1)在进行0.1的相互转换,对11111001进行反补码。操作为将11111001减1得11111000在进行0.1的转换的00000111,得到反补码数,进行二进制的转换得7,则6的结果为-7
与运算
:
public class Work {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=6;
int b=4;
int c=a&b
System.out.println(c);
}
}
答案为4
6的二进制为·00000110,4的二进制为00000100,若进行与运算他的二进制为00000100,为什么呢,可简记为0与0为0,0与1为0.1与1为1。
或运算:
ublic class Work {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=6;
int b=4;
int c=a|b;
System.out.println(c);
}
}
答案为6
或预算遵守0或0为0,1或1为1,0或1为1。
异或运算:
public class Work {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=6;
int b=4;
int c=a^b;
System.out.println(c);
}
}
答案为2,
这个或运算的规则是相同为0不同为1则6的二进制和4的二进制进行异或运算所得的数为00000010
用异或运算还可以进行两个数的转换
如进行a与b两个数的转换,a=a^b;
b=b^a;
a=b^a;
这种方法是最快的,因为计算机进行二进制运算是最快的。
以上的按位取反。与运算和或运算以及异或运算,你可以讲1理解为true 0理解为false,按照逻辑运算的规则来进行二进制的互相转换。
移位运算:
先记住算数左移几位相当于原来的数乘以2的几次方如int a=6;
int b;
b=a<<3;
答案就成了48相当于6*2的3次方。
算数右移当于原来的数除以2的几次方。
例子
int a=64;
int b;
b=a>>3;
答案就成了8,相当于64除以2的3次方
这个左移几位或移几位的原理还是在其二进制的代码上进行移动int b;
b=a<<3;
6的二进制代码为00001100行变化为01100000
在这里要注意以为最高位(也就是最左边的数)是不变的。如果是正数最高位始终位0. 如果是负数最高位始终为1.
正数最高位补的都是0
负数补的都是1.
移位计算可以代替数字互乘的计算。而且还更快。
移位计算是先要赋值才能计算。
逻辑右移
符号为>>>
又称无符号右移,不管高位是多少,最高位始终均填0,都成正数。
赋值运算符:
赋值运算的符号不于数学中的符号相同,赋值运算他是个动作,就如同a=b,在赋值运算的含义为讲b的值赋给a
作为一名程序员,必须学会为自己减轻工作量,但是在保证正确的前提下。
如a=a+2,a=a+b,你可以将其转化为a+=2,a+=b;(像这种 = 两边都有变量本身,便可以用这种方式进行简化)。
字符串运算:字符串表示用双引号(“”)括起来的多个(0~n)字符
用String “”表示一个字符串
+表示字符串的连接作用。
字符串连上的不同类型,都会把不同类型转化为字符。
public class Work {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=64;
int b=32;
String s="天才放荡不羁";
String t="庸人放浪不羁";
s=s+t;
System.out.println(s);
输出结果:天才放荡不羁庸人放浪不羁
这是个三元运算的
在左边一定是布尔型的表达式,
(a>b)?a:b; 作用如果为真,输出a,否则的话输出b,相当于简单的if-else语句
int a=64;
int b=32;
int s;
s=(a>b)?a:b;
System.out.println(s);
输出结果为64