JAVASE-03:运算符和语句

JAVASE-03:运算符和语句


IDEA基础使用方法

1.创建项目:在src下先建包,格式:命名-域名+功能名,例:com.baidu.video 再建类;

2.右键 show in explorer 查看项目位置;

3.生成主方法 敲psvm 快速生成输出语句sout

4.有红线-有语法错误;

5.单行注释 ctrl+/ (多行注释内可套单行注释 但不能再套多行注释);

6.多行注释 ctrl+shift+/ctrl+z 撤销;

7.ctrl+alt+L可以排版代码;

8.变量名.sout快速输出某个变量;

9.ctrl+shift+回车,自动补分号;

10.ctrl+alt+v 可以自动补全;

11.alt+enter,万能纠错键–纠错自动补全;


1.运算符(续)

1.1逻辑运算符:逻辑运算符一般用于连接boolean类型的表达式或者值,运算结果是布尔型。

常用逻辑运算符 效果
并且& 同真为真 一假则假 可以连续多个使用
或者l 一真则真 全假才假 (也可以在sout输出语句中直接输出运算结果)
非! 取反 真变假 假变真
异或^ 相同为假 不同为真
短路与’&&’ 短路或(ll) 和&、l在运算结果上没有区别,但是在运算效率上有区别(用&&和ll时如果左边的表达式或值可以确定最终结果,则不执行运算右边的表达式 所以可以提高运算效率,因此大部分用 &&、ll)

1.2位运算符:直接对二进制补码进行运算,效率更高(如果对数值进行运算&、 |、 ^则为位运算符,两端如果是布尔类型则是逻辑运算符)

常用逻辑运算符 效果
& 与 有0则0 全1才1 (1-true 0-false)
l 或 有1则1 全0才0
^ 异或 相同为0 不同为1 一个数被另一个数位异或两次该数不变
~ 按位取反
<< 左移 将3的二进制补码左移两位 被移除的高位丢弃 空位补零(3<<2.sout) ,快速计算:左边的数据乘2的移动次幂 例如 10 << 3 结果是 10*2^3=80
>>右移 正数补零 负数补一 这样比2*40得到80运算效率更高,快速计算:左边的数据除2的移动次幂 例如 10 >> 3 结果是 10/2^3=1
>>>无符号右移 被移位的最高位 正负都补零

案例知识点:值交换

a. 通过中间变量 进行值交换 (开发中常用);
b. 利用位异或^运算符特点:一个数被另一个数位异或两次该数不变;
在这里插入图片描述
c. 加减赋值。
JAVASE-03:运算符和语句_第1张图片

1.3 三元运算符:表达式?结果1:结果2 当表达式的结果为true时返回结果1,为false时返回结果2。
例:输出a和b中较大的值

int a=20;

int b=200;

int max=a>b?a:b;

max.sout

例:求三个数最大值

int a=20;

int b=200;

int c=201;

int max1=a > b ? a : b;

int max2=max1>c?max1:c;

max2.sout

// 可以嵌套使用三元表达式 但是阅读性差 int max=(a > b ? a : b;>c)?(a > b ? a : b): c ;

键盘录入数据:Scanner 类 做键盘录入

1.导入包:在类的上面 import java.util.Scanner(IDEA中自动导入)

2.创建对象:对象名可以自己起 Scanner sc=new Scanner(System.in);

自动补全方法:先写后半段new Scanner() 然后alt+enter 万能纠错键–纠错自动补全,ctrl+alt+v 也可以自动补全

3.提示用户语句: “请输入一个整数:”.sout

4.通过对象获取数据:录入用户数据 int one=sc.nextInt();

5.处理数据;

6.输出

例:比较三个数重最大值 并且判断是否相等
JAVASE-03:运算符和语句_第2张图片


2.语句

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
流程控制语句的分类:顺序结构 选择结构 循环结构
顺序结构:从上往下 依次执行

2.1 条件选择语句

if(条件:结果是布尔类型的表达式/值,当结果为真时执行语句体){
​	语句体;
}
if(条件:当结果为真时执行这里的语句体){
​	语句体;
}esle{  
    当结果为假时执行这里的语句体
​	语句体;
}

例: 获取三个数最大值(获取和只打印不同)

if else可以嵌套使用,但是嵌套太多(3个以上)会降低阅读性
JAVASE-03:运算符和语句_第3张图片

多重条件选择:

if(){

}else if(){

}else if(){

}else{

}

执行流程:

首先计算比较表达式1看其返回值是true还是false,
如果是true,就执行语句体1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false,
如果是true,就执行语句体2,if语句结束。
如果是false,接着计算比较表达式3看其返回值是true还是false,
...
如果都是false,就执行语句体n+1。

注意事项: 当只要有一个条件满足时,if语句结束。else是可以省略,但是不建议省略。
三元表达式能写出来的if语句一定能写出来,if能写出来的三元表达式

switch表示这是switch语句
switch语句支持的数据类型-byte、short、int、char、string、枚举;
case后面带匹配的值一定是常量,不能写变量,跟的是要和表达式进行比较的值;
多个case的值全部是同一种类型,且不能有相同的;

switch(支持的数据类型){   

​	case 某常量:  

​		break;

​	case 某常量:

​		break;

​	...

​	default:

​		当所有的case都没有匹配上,执行默认项

​		break;

}

break–结束switch语句,可以省略,但是会发生case穿透的现象,也可以利用这种现象;
default项可以省略不写,就没有默认处理方式。
if语句和switch语句的区别:switch是针对有限个的常量进行选择的,不能对范围进行选择;而if能对常量进行选择,还能对范围进行选择。

2.2循环语句

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句。当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

循环结构for语句的格式:

for(int i=0;i<10;i++){"我爱你".sout(条件体)
}

int i=0是循环的初始值;i<10是循环的条件,当条件为true是循环进行;i++是控制循环语句,每循环一次加1;

执行顺序:第一步执行赋值 第二步执行条件判断 第三步执行大括号里的循环体 第四步执行i++ 第五步重复2、3、4 直到执行条件不成立

例:统计水仙花数个数

package org.westos.demo;
public class MyTest4 {
    public static void main(String[] args) {
        /*A:
        需求:在控制台输出所有的”水仙花数”
        所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
        举例:153 就是一个水仙花数。
        153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 = 1 + 125 + 27 = 153
        */
      
        /*
         * 难点:思路:153 取这个三位数,每一位上的数字  1   5   3
         * int ge=153/1%10
         * int shi=153/10%10
         * int bai=153/100%10
         */
        
        /*System.out.println(153%10);
        System.out.println(153 /10% 10);
        System.out.println(153 / 100 % 10);
        */
        
        //统计水仙花数有几个
        int count=0; //定义统计变量
        for (int i = 100; i <= 999; i++) {
            int ge = i / 1 % 10;
            int shi = i / 10 % 10;
            int bai = i / 100 % 10;
            int flowerNumber = ge * ge * ge + shi * shi * shi + bai * bai * bai;
            if (i == flowerNumber) {
                System.out.println("水仙花数:" + i);
                count++;
            }
        }
        System.out.println("水仙花数有"+count+"个");
    }
}

你可能感兴趣的:(JavaSE)