Operator&Scanner&Switch学习

Posted littlebear_s

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Operator&Scanner&Switch学习相关的知识,希望对你有一定的参考价值。

Operator(运算符)

c++和++c

public class AndOrNot1 {
    public static void main(String[] args) {
        int c = 5;
        boolean d = 6>c++;
        //由于这里是c++,所以先执行代码判断6>5,得到true,然后再执行c++自加:c=c+1=6
        System.out.println(d);//true
        System.out.println(c);//6
    }
}
public class AndOrNot2 {
    public static void main(String[] args) {
        int c = 5;
        boolean d = 6>++c;//由于这里是++c,进行自加c = c + 1,然后再开始比较6>6,得到false
        System.out.println(d);//false
        System.out.println(c);//6
    }
}

<<和>>

0000 0000   0
0000 0001   1
0000 0010   2
0000 0011   3
0000 0100   4
0000 1000   8
0001 0000   16

以上是二进制对应的十进制,可以看出每*2就相当于数字1向左移动一位,所以

如何以最快的效率计算2x8:

2x8=16=2x2x2x2,用到上面的结论,2要变成2^4就相当于左移了三次,答案为:

System.out.println(2<<3);

<< 左移*2 >>右移/2

字符串连接符 +

int a = 10;
int b = 20;
System.out.println(""+a+b);//1020,如果字符串在前面,后面的就会拼接
System.out.println(a+b+"");//30,如果字符串在后面,前面会进行运算
System.out.println(a+""+b);//1020

在“+”两侧,只要有一方出现了String类型,他就会把另外一个操作数或者其他操作数都转化为String,再进行连接

a+=b;//a = a+b
a-=b;//a = a-b

x ? y : z

如果x==true,则结果为y,否则结果为z

int score = 80;
String type = score < 60 ? "不及格":"及格";//必须掌握
System.out.println(type);//及格

Scanner

public class Test03 {
//输入多个数字,并求其综合与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double sum = 0;
        int t = 0;
        System.out.println("请输入数字:");

        while (scanner.hasNextDouble()){
            double x = scanner.nextDouble();
            t++;
            sum = sum + x;
            System.out.println("当前是第"+t+"次输入,总和为:"+sum);
        }
        System.out.println("输入总和为"+sum);
        System.out.println("输入平均值为"+sum/t);

        scanner.close();
    }
}

最开先要开始用Sanner的时候,就应该先把scanner.close();在最后面写上

Switch

public class SwitchDemo01 {
    public static void main(String[] args) {
        char grade = \'A\';

        switch (grade){
            case \'A\':
                System.out.println("优秀");
                break;
            case \'B\':
                System.out.println("良好");
                break;
            case \'C\':
                System.out.println("及格");
                break;
            case \'D\':
                System.out.println("再接再厉");
                break;
            case \'E\':
                System.out.println("挂科");
                break;
            default:
                System.out.println("未知等级");
        }
    }
}

注意事项

  • 每个case后面都要写break

  • default是没匹配到执行的语句

  • JDK7过后可以使用String类型

以上是关于Operator&Scanner&Switch学习的主要内容,如果未能解决你的问题,请参考以下文章

operator new & operator delete

operator new & operator delete

返回多于 T& 和 std::pair 的 iterator::operator* 的标准接口

operator<<(ostream&, const BigUnsigned<I>&) 必须只有一个参数

重载[] int& operator[ ]( )

QLinkedList operator+ 效率