- 根据运算符的功能,我们把运算符分成哪几类?
逻辑运算符(与(&) 或(|) 非(!) 短路与(&&有假就假) 短路或(||有真就真) ^异或(相同为假,不同为真)
条件 boolean表达式 ?值1 : 值2
1)计算表达式,得到一个boolean结果
2)如果结果为true,条件运算符结果为值1
3)如果结果为false,条件运算符结果为值2
算数
比较(< > <= >= == != )
赋值(= 唯一一个从右向左运算)
位运算 将十进制转化为二进制再进行逻辑运算, - “&”和“&&”的异同
&是与 类似于和,有假就假,前假后面也要运算
&&短语与,有假就假,前假后面不运算
3.程序输出
class OperatorTest {
public static void main(String[] args) {
boolean x = true;
boolean y = false;
short z = 40;
if ((z++ == 40) && (y = true)) {
z++;
}
if ((x = false) || (++z == 43)) {
z++;
}
System.out.println("z = " + z);
}
}
结果为:z = 44 - 自己定义一个int型三位数的变量并赋值(例如:int a = 123),先将这个变量拆分出个,十,百位,再使用三元运算符将这三个数中的较大数实现。
import java.util.Scanner;
public class chaifen{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println(“输入一个百位整数,我将进行拆分”);
int zhengshu = sc.nextInt();
int bai = zhengshu/100;
System.out.println(“百位是” + bai);
int ge = zhengshu%10;
System.out.println(“个位是” + ge);
int shi = zhengshu%100/10;
System.out.println(“十位是” + shi);
int max = 0;
max = ge >= bai ? ge:bai;
max = max >=shi ? max:shi;
System.out.println(max);
}
} - 写出输出结果:
class Demo{
public static void main(String[] args){
int a=3,b=8;
int c=(a>b)?a++:b++;
System.out.println(“a=”+a+“\tb=”+b+“\tc=”+c); // a= 3 b=9 c= 8
int d=(a>b)?++a:++b;
System.out.println(“a=”+a+“\tb=”+b+“\td=”+d); //a=3 b=9 c=9
int e=(a<b)?a++:b++;
System.out.println(“a=”+a+“\tb=”+b+“\te=”+e); //a=4 b=8 c=3
int f=(a<b)?++a:++b;
System.out.println(“a=”+a+“\tb=”+b+“\tf=”+f); //a=4 b=8 c=4
}}
课后练习题
-
岳小鹏参加Java考试,他和父亲岳不群达成承诺:
如果:
成绩为100分时,奖励一辆BMW;
成绩为(80,99]时,奖励一台iphone xs max;
当成绩为[60,80]时,奖励一个 iPad;
其它时,什么奖励也没有。
请从键盘输入岳小鹏的期末成绩,并加以判断import java.util.Scanner;
public class bc{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println(“输入你的成绩”);
int cj = sc.nextInt();
if (cj == 100) {
System.out.println(“一辆BMW”);
}else if (cj > 80 && cj <= 99) {
System.out.println(“一台苹果手机”);
}else if (cj >= 60 && cj <= 80) {
System.out.println(“iPad”);
}else {
System.out.println(“去吃屁”);
}
}
} -
编写程序,声明2个int型变量并赋值。判断两数之和,如果大于等
于50,打印“hello world!” 其他情况打印 “hello China!”import java.util.Scanner;
public class bc2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println(“输入两个数,我来将其比较”);
int a = sc.nextInt();
int b = sc.nextInt();
if ( a+b >=50) {
System.out.println("hello world ");
}
else {
System.out.println(“hello China”);
}
}
} -
编写程序,声明2个double型变量并赋值。判断第一个数大于10.0, 且第2个数小于20.0,打印两数之和。否则,打印两数的乘积。
import java.util.Scanner;
public class bc2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println(“输入两个数,我来将其比较”);
double a = sc.nextInt();
double b = sc.nextInt();
if ( a > 10.0 & b < 20.0) {
a = a+b;
System.out.println(“和” + a);
}
else {
a = a*b;
System.out.println(“积” + a);
}
}
} -
编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,
对它们进行排序(使用 if-else if-else),并且从小到大输出。
import java.util.Scanner;
public class 排序{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println(“输入三个数,我来将其排序”);
double a = sc.nextDouble();
double b = sc.nextDouble();
double c = sc.nextDouble();
if (a>b) {
if( c > a){
System.out.println(b );
System.out.println(a);
System.out.println©;
}
else {
System.out.println(b);
System.out.println©;
System.out.println(a);
}
}
else if( a < b){
if( c > b){
System.out.println(a);
System.out.println(b);
System.out.println©;
}
else {
System.out.println(a);
System.out.println©;
System.out.println(b);
}
}
else{
System.out.println("输入有误");
}
}
}
-
我家的狗5岁了,5岁的狗相当于人类多大呢?其实,狗的前两年每 一年相当于人类的10.5岁,之后每增加一年就增加四岁。那么5岁的狗 相当于人类多少年龄呢?应该是:10.5 + 10.5 + 4 + 4 + 4 = 33岁。
编写一个程序,获取用户输入的狗的年龄,通过程序显示其相当于人 类的年龄。如果用户输入负数,请显示一个提示信息。
import java.util.Scanner; public class 小狗 { public static void main(String[] args) {