栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习第四章 算术运算符

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习第四章 算术运算符

算数运算符的使用(演示)
public class ArithmeticOperator{
    public static void main(String[] args){
        System.out.println(10/4);// 从数学来看是2.5,Java中是2
        System.out.println(10.0/4);//此时输出是2.5
        double d = 10 / 4;  
        System.out.println(d);//此时输出2.0, 这里只提升了精度 
        
        // % 取模,取余
        System.out.println(10 % 3); //1
        System.out.println(-10 % 3); //-1
        System.out.println(10 % -3); //1
        System.out.println(-10 % -3);// 1
        //特别注意:
        //%(取模)的本质:a % b = a - a / b *b
        //例子:10 % -3 = 10 - (10 / -3) *(-3) = 10 - (-3) * 3 = 10 -9=1; 
        //++的使用
        int i = 10;
        i++;
        ++i;
        System.out.println(i);//当单独使用时,两个都表示自增,结果为12
        
        int j = 8;
        int k = ++j;
        System.out.println("k=" + k +"j=" + j);//输出k=9 j=9;
        //int k = j++;
        //System.out.println("k=" + k + "j+" + j)//此时输出的是:k = 8  j = 9        
    }
}
面试题练习

        1.int i = 1;

        i = i ++;

        System.out.println(i);

        问:输出结果是什么,为什么?

public class exercise01{
    public static void main(String[] args){
        int i = 1;
        i = i ++;//规则使用临时变量:(1)temp=i;(2)i=i++;(3)i=temp;
        System.out.println(i);
    }
}
//输出结果为 1
//如果 i = ++i;那么则输出2
//此时的规则是 :(1)i = i++;(2)temp = i;(3)i=temp;
//这两给规则的差距也就是先加还是后加的问题

2.假如还有59天放假,问:合xx个星期零xx天

public class exercise02{
    public static void main(String[] args){
        int days = 59;
        int weeks = days / 7;
        int leftdays = days % 7;
        System.out.println(days + "天 合" + weeks + "个星期零" + leftdays + "天");
    }
}

3.定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9 *(华氏温度 -100),请求出华氏温度对应的摄氏温度

public class exercise03{
    public static void main(String[] args){
        double huashi = 234.6;
        double sheshi = 5.0 / 9 * (huashi - 100);
        System.out.println("华氏温度" + huashi + "对应" + sheshi + "摄氏度");
    }
}

注意

(1)%(取模)的本质:a % b = a - a / b *b

(2)后++规则 :(1) temp=i;(2)i=i++;(3)i=temp;

(3)前++规则:(1)i = i++;(2)temp = i;(3)i=temp;

关系运算符

(1)关系运算符的结果都是boolean型,也就是要么是true,要么是false。

(2)关系运算符组成的表达式,我们称之为关系表达式。例:a > b

(3)比较运算符“==”不能误写成“=”

逻辑运算符
  • &&和&基本规则

    名称语法特点
    短路与&&条件1&&条件2两个条件都为true,结果为true
    逻辑与&条件1&条件2两个条件都为true,结果为true

    区别:

    &&短路与:如果第一个条件为false,则第二个条件不判断,最终结果为false,效率高

    &逻辑与:不管第一个结果是否为false,第二个条件都要判断,效率低

    开发中基本使用&&,效率高

  • ||短路或和|逻辑或的道理和上述一样

    在开发中使用的基本都是||,效率高

  • ! 取反操作

    特点:如果条件本身成立,结果为false,否则为true(真变假,假变真)

  • ^异或操作

    特点:当a和b不同时,结果为true,否则为false

赋值运算符

  • 介绍:赋值运算符就是将某个运算后的值,赋给指定的变量。

  • 例:a + = b //等价于 a = a + b

    a - = b //等价于 a = a - b

  • 特点:

    (1)运算顺序从左往右 int num = a + b + c

    (2)赋值运算符的左边只能是变量,右边可以是变量,表达式,常量值

    (3)复合赋值运算符会进行类型转换

    解释:

public class AssignOperator{
    public static void main(String[] args){
        byte b = 1;
        b += 2; //等价于 b = (byte)(b+2) 就是说 b+2 运算完后其实是int类型,赋值运算符直接将int型的数据转为了byte
        b++;//也是一样的道理,都是直接进行了类型转换
    }
}

三元运算符

  • 运算规则

    如果条件表达式为true,运算后的结果是表达式1;

    如果条件表达式为false,运算后的结果是表达式2;

    口诀:(一真大师)

  • 例:

public class TernaryOperator{
    public static void main(String[] args){
        int a = 10;
        int b = 20;
        //a b ? a++ : b--;
        System.out.println("result = "
                           + result + 'n' + "a = " + a + 'n'+"b = " + b);
    }
}

细节

(1)表达式1和表达式2要为可以赋给接受变量的类型(或可以自动转换)

(2)三元运算符

练习:实现三个数的最大值

可以转成if--else语句

public class Ternary0peratorExercise{
    public static void main(String[] args){
        int a = 2;
        int b = 5;
        int c = 8;
        int result1 = a > b ? a : b;
        int result2 = result1 > c ? result1 : c;
        System.out.println(result2);
    }
}

标识符

  • (1)概念:Java对各种变量,方法和类等命名时使用的字符序列称为标识符

    (2)凡是自己可以起名字的地方都叫标识符

  • 命名规则:

    (1)由26个英文字母大小写,0~9,_或$组成

    (2)数字不可以开头。int 3ab = 1;

    (3)不可以使用关键字(class int等)和保留字(goto),但能包含关键字和保留字

    (4)Java中严格区分大小写,长度无限制

    (5)标识符不能包含空格

  • 例子

    hsp // ok

    1hsp // 错误

    h-s //错误

    h s // 错误:有空格

键盘输入语句

  • 介绍:在编程中,需要接受用户输入的数据,就可以使用键盘输入语句来获取。Input.java,需要一个扫描器(对象),就是Scanner

  • 步骤:

    (1)导入该类的所在包,java。util.*

    (2)创建该类对象(声明变量)

    (3)调用里面的功能

  • 例:要求可以从控制台接收用户信息,(姓名,年龄,薪水)

import java.util.Scanner;
public class input{
    public static void main(String[] args){
        Scanner myscanner = new Scanner(System.in);//创建Scanner对象,new一个对象,myscanner就是Scanner的对象
        System.out.println("请输入您的名字");
        String name = myscanner.next();
        System.out.println("请输入您的年龄");
        int age = myscanner.nextInt();
        System.out.println("请输入您的薪水");
        double sal = myscanner.nextDouble();
        System.out.println("人的信息如下");
        System.out.println("name=" + name + "age = " + "sal=" + sal);
    }
}

原码、反码、补码

(1)二进制的最高位是符号位:0表示正数,1表示负数

(2)正数的原码、反码、补码都一样(三码合一)

(3)负数的反码 = 符号位不变,其他位取反

(4)负数的补码 = 反码 + 1,负数的反码 = 负数的补码 - 1

(5)0的反码补码都是0

(6)java中没有无符号数

(7)在计算机运算的时候,都是以补码的方式来运算的

(8)当我们看运算结果的时候,要看他的原码

  • 位运算符

    Java中有7个位运算符(&,|,^,~,>>,<<,和>>>)

    按位与& :两位全为1,结果位1,否则为0

    按位或| :两位有一个为1,结果为1;否则为0

    按位异或^ :两位一个为0,一个为1,否则为0

    按位取反 ~:对应位置取反

  • 例:

//位运算
public class TernaryOperatorDetail{
    public static void main(String[] args){
        System.out.println(2&3); 
        
        System.out.println(~-2);
        
        System.out.println(-2|-3);
        
    }
}

本章作业

(1)计算下列表达式的结果

10/3 = 3;10/5 = 2; 10 % 2 = 0; -10.5 % 3 = -1.5(近似值)

(2)说出下列代码的结果

int i = 66;
System.out.println(++i+i);
//结果:67 + 67 = 134

(3)试写出将String转换成double类型的语句,以及将char类型转换称String的语句

String str = "1.88";
double d1 = Double.parseDouble(str);

char c1='程';
String str2 = c1 + ""

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/353800.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号