三元运算符&判断和循环P37~42

1.运算符

1.1三元运算符

注意事项:

1.关系表达式为true,显示表达式1的结果否则显示表达式2的结果。 

2.整个三元运算符的结果必须要被使用,要么赋值给变量要么打印。不能单单显示使用这一句。 

自己先做一遍。

public class SanyuanTest {
    public static void main(String[] args) {
        System.out.println("请输入第一只老虎的体重");
        Scanner a = new Scanner(System.in);
        int number1 = a.nextInt();
        System.out.println("请输入第二只老虎的体重");
        Scanner b = new Scanner(System.in);
        int number2 = b.nextInt();
        String result= number1==number2 ? "体重相同":"体重不同";
        System.out.println(result);


    }
}

和老师做的一样,但需要注意:

1.Scanner中的S一定要大写!!!

2.录入键盘的代码中Scanner sc=new Scanner(System.in)语句只需要输入一遍就可以了。

自己做的

public class SanyuanTest2 {
    public static void main(String[] args) {
        int number1 =150;
        int number2 =210;
        int number3 =165;
        int a = number1>number2?number1:number2;
        int b = a>number3?a:number3;
        System.out.println(b);  
    }

}

PS:

1.Ctrl+D是向下复制上一行代码;

2.Ctrl+ALT+L自动格式化代码,使其对齐。但此快捷键可能与其他软件冲突。


 1.2运算符优先级

小括号优先于所有。养成加小括号的习惯就可。

1.3原码、反码、补码

1.正数的原码、反码、补码都一样。

2.二进制中一个数字是一个比特位,八个二进制数字是一个字节。一个字节的大小范围是-128到127。

3.byte(1个字节)<short(2个字节)<int(4个字节)<long(8个字节)。

4.不管是几个字节的情况,只要是有符号整数,第一位都是符号位,所以一个字节的最大值是2^7-1=127。不是一个字节的情况下,就算是只有后面8位有数字,倒数第八位也不是符号位,还是按照幂相加计算。

5.隐式转换是在前面补0,强制转换是删掉前面多的字节,所以超过1个字节的取值范围以后强制转换很有可能数值变化了。        

1.4其他的运算符

逻辑或:0为false 1为true以后,还是只有两个都是true才true才是1.也就是说相同的比特位上两个都是1才是1。

逻辑与:只要两个对应的比特位上有1个是1就是1 

关于右移的高位补0或1取决于正负数,补的是符号位。

2.判断和循环

2.1 if的三种格式

if语句的第一种格式

PS:

1.int a =10,其实是两个语句。声明和赋值,所以大括号尽量不要省略。

2.给布尔类型变量赋值容易少写一个等号,影响if语句的正常判断。

public class test2 {
    public static void main(String[] args) {
        System.out.println("how much money you have");
        Scanner sc=new Scanner(System.in);
        int money=sc.nextInt();
        if (money>=100){
            System.out.println("吃大餐!!");
        }
        else{
            System.out.println("吃路边摊");
        }
    }
}

PS:

1.注意if后面的执行语句被包在一个大括号中,else后面的执行语句也是。但else及其后内容不是包含在if后面的大括号中的。 

public class test3 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("how much you pay");
        int pay= sc.nextInt();
        if (pay>=600){
            System.out.println("OK");
        }else{
            System.out.println("NO");
        }
    }
}

 这里键盘录入的数字只能是整数,如果是小数就wrong:

1.不是关系运算符的问题,它两边可以一边是整数一边是小数。整数类型(int, long 等)和浮点数类型(float, double)可以直接比较,因为整数可以自动转换为浮点数。

2.nextInt()这里面暂时只接受录入整数。

public class test4 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("票号");
        int number = sc.nextInt();
        if (number>=0 && number<=100){
        if (number%2==0){
            System.out.println("right");
        }else{
            System.out.println("left");
        }}else {
            System.out.println("wrong");
        }
    }
}

 &&与||和单个的&与|的使用结果没有任何区别。只不过很有可能只执行半边就出结果,节省效率。

else用不到的时候可以省略不写。比如一个if和两个else if.

public class test5 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("会员级别");
        int grade=sc.nextInt();
        if (grade==1) {
            double price = 1000 * 0.9;
            System.out.println(price);
        }else if (grade==2){
            double price = 1000 * 0.8;
            System.out.println(price);
        }else if (grade==3){
            double price = 1000 * 0.7;
            System.out.println(price);
        }
        else {
            System.out.println("原价支付");
        }
    }
}

 

  • 33
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值