一、算数操作符
基本:+-*/%
自增自减 ++ --
操作运算符-Scanner
导入Scanner类,(既然是类,在main中使用时需要new对象。)使用其获得输入的整数值。
import java.util.Scanner;
public class yunsuanfu {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a = s.nextInt();
System.out.println("第一个整数是:"+ a);
int b = s.nextInt();
System.out.println("第二个整数是:"+ b);
}
}
相应的也可以读取其他的数据值:
import java.util.Scanner;
public class yunsuanfu {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("输入整数:");
int a = s.nextInt();
System.out.println("第一个整数是:"+ a);
System.out.println("输入整数:");
int b = s.nextInt();
System.out.println("第二个整数是:"+ b);
System.out.println("输入浮点数:");
float c = s.nextFloat();
System.out.println("读取的浮点数值为"+ c);
System.out.println("输入字符串:");
String d = s.nextLine();
System.out.println("读取的字符串为:" + d);
}
}
但是,我们发现这里的字符串并没有输入就直接输出了。这是因为在先输入里整数或者浮点数之后,输出时会输出一个换行符。读取字符串时,直接读取了这个换行符,导致直接输出。
如果程序需要在整数或者浮点数之后输出字符串,就需要两个读取字符串 的 语句。
System.out.println("输入字符串:");
String d = s.nextLine();
String e = s.nextLine();
System.out.println("读取的字符串为:" + e);
三、关系操作符
> 大于
>= 大于或等于
< 小于
<= 小于或等于
== 是否相等
!= 是否不等
import java.util.Scanner;
public class yunsuanfu {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
System.out.println("第一个整数:" + number);
int number2 = scanner.nextInt();
System.out.println("第二个整数:" + number2);
System.out.println("比较" + number + ">" + number2 + ":" + (number > number2));
System.out.println("比较" + number + ">=" + number2 + ":" + (number >= number2));
System.out.println("比较" + number + "<" + number2 + ":" + (number < number2));
System.out.println("比较" + number + "<=" + number2 + ":" + (number <= number2));
System.out.println("比较" + number + "==" + number2 + ":" + (number == number2));
System.out.println("比较" + number + "!=" + number2 + ":" + (number != number2));
}
}
比较下输出的是true或者false
四、逻辑运算符
内容
1、长路与 和 短路与
无论长路与 & 还是短路与 &&
两边的运算单元都是布尔值
都为真时,才为真
任意为假,就为假
区别
长路与 两侧,都会被运算
短路与 只要第一个是false,第二个就不进行运算了
短路与的比长路的少计算一边。
public class yunsuanfu {
public static void main(String[] args) {
//长路与 无论第一个表达式的值是true或者false,第二个的值,都会被运算
int i = 2;
System.out.println( i== 1 & i++ ==2 ); //无论如何i++都会被执行,所以i的值变成了3
System.out.println(i);
//短路与 只要第一个表达式的值是false的,第二个表达式的值,就不需要进行运算了
int j = 2;
System.out.println( j== 1 && j++ ==2 ); //因为j==1返回false,所以右边的j++就没有执行了,所以j的值,还是2
System.out.println(j);
}
}
2、长路或 和 短路或
无论长路或 | 还是短路或 ||
两边的运算单元都是布尔值
都为假时,才为假
任意为真,就为真
区别
长路或 两侧都会被运算
短路或 只要第一个是true的,第二个就不进行运算了
3、取反!
取反!
真变为假
假变为真
public class yunsuanfu {
public static void main(String[] args) {
boolean b = true;
System.out.println(b); //输出true
System.out.println(!b);//输出false
}
}
4、异或^
不同,返回真
相同,返回假
练习:注意这里的i++ ,是先调用i,判断后再 ++
public class Demo15 {
public static void main(String[] args) {
int i=1;
boolean b=!(i++==3)^(i++==2)&&(i++==3);
//结果是flase&&ture
//!(i++==3)^(i++==2)
//!(2==3)^(3==2) 结果i=3,并flase
//因前面判断为flase,后面不执行,直接出结果为flase。
System.out.println(b);
System.out.println(i);
}
}
五、赋值操作符
注意++i 和j++的区别。
六、三元操作符
表达式?值1:值2
如果表达式为真 返回值1
如果表达式为假 返回值2
public class yunsuanfu {
public static void main(String[] args) {
int i = 5;
int j = 6;
int k = i < j ? 99 : 88;
System.out.println(k);
}
}