今天主要来学习一下Java的运算符;
1.算术运算符
1.1 正负号(+,-)
byte age =+30;
System.out.println(age);//-30
int a=11;
int b=22;
int c = a+b;
System.out.println(c);//33
System.out.println(a-b+(-c));//-44
1.2 除法
int a=1234;
int b=10;
int c=a/b;
System.out.println(c);//123 求商取整
System.out.println(1234/10);//123
System.out.println(1234.0/10);//123.4
System.out.println(1234/10.0);//123.4
System.out.println(1234.0/10.0);//123.4
1.3 %取模
int i=10;
int j=3;
System.out.println(i%j);
取模的正负取决与被除数:
System.out.println(10%3); //1
System.out.println(-10%3); //-1
System.out.println(10%-3); //1
System.out.println(-10%-3); //-1
1.4 自增
-前自增:先自增完毕,再运算整个表达式,语句分号前面的都是运算表达式;
int i =0;
int sun =0;
sun=++i; //前自增
System.out.println(i); //1
System.out.println(sun); //1
后自增,先运算完整个表达式(分号前面的都是表达式),再进行自增;
int i =0;
int sun =0;
sun=i++; //后自增
System.out.println(i); //1
System.out.println(sun); //0
备注:参与自增运算的操作数据每次会加1.
结论:
- 如果运算符在变量的前面,则该变量自增1或者自减1,然后返回的是变量的新值;
- 如果运算符在变量的后面,则变量也会自增或者自减1,但是返回的是变量原来的值。
- ++在前就是先运算,再取值,++在后就是先取值,再运算。
练习1:
int i = 10;
int newNum = 10 * i++; //10
System.out.println(newNum);//100
练习2:
int i = 10;
int newNum = 10 * ++i; //11
System.out.println(newNum); //110
练习3:
1.使用程序判断一个整数是偶数还是奇数
方案1
public static void main(String[] args) {
// 判断一个整数一奇数还是偶数
int x = -100;
// 奇数是,1,3,5...偶数是2,4,6...显然整数除2能整除,也就%(取模)结果为0就是偶数。
int result = x % 2;
System.out.println(result);
// 使用判断语句进行判断。
if (result == 0) {
System.out.println(x + "是偶数");
} else {
System.out.println(x + "是奇数");
}
}
方案2
使用判断该数结果是否是奇数。
(但是该算法有问题,如果被判断的整数为负数是否有效?)
public static void main(String[] args) {
// 判断一个整数一奇数还是偶数
int x = 1;
// 奇数是,1,3,5...偶数是2,4,6...显然奇数%的结果为1.
int result = x % 2;
System.out.println(result);
// 使用判断语句进行判断。
if (result == 1) {
System.out.println(x + "是奇数");
} else {
System.out.println(x + "是偶数");
}
}
改进:
public static void main(String[] args) {
// 判断一个整数一奇数还是偶数
int x = -1;
// 奇数是,1,3,5...偶数是2,4,6...显然奇数%的结果为1.
int result = x % 2;
System.out.println(result);
// 使用判断语句进行判断。
if (result != 0) {
System.out.println(x + "是奇数");
} else {
System.out.println(x + "是偶数");
}
}
练习4.
使用程序判断假设今天是星期4,那么问10天后的今天是星期几?
public static void main(String[] args) {
// 设定今天是星期1,用int 1表示星期一,0表示星期天
int today = 1;
// 十天后是星期几?,一个星期是7天,7天之后又是星期1,可以用?
int future = (today+10) % 7;
if (future == 0) {
System.out.println("10天后是星期天");
} else {
System.out.println("10天后是星期:" + future);
}
}
练习5:
将数值表达式使用java程序翻译,并通过程序求出运算结果
其中int x=1;int y=2,int a=3,int b=4,int c=5;
int x = 1;
int y = 2;
int a = 3;
int b = 4;
int c = 5;
int result = (3 + 4 * x) / 5 - 10 * (y - 5) * (a + b + c) / x + 9* (4 / x + (9 + x) / y);
System.out.println(result); // 442