Java基础语法与运算符

Java基础语法

数据类型

8大基本数据类型

整数类型

  • byte 1字节
  • short 2字节
  • int 4字节(整数默认数据类型)
  • long 8字节 (赋值的字面量结尾要加l或L)

浮点数类型

  • float 4字节(赋值的字面量结尾要加f或F)
  • double 8字节(浮点数默认字节)

字符数据类型

  • char 2字节

布尔型

  • boolean 1字节
//目标:掌握整数型和浮点型变量的定义与使用
public class Demo01 {
    public static void main(String[] args) {
        /**
         * 赋值:
         *      给long类型变量赋值时,字面量加L或l,推荐L
         *      给float类型变量赋值时,字面量加F或f
         *      给Double类型变量赋值时,字面量加D或d
         *
         * 默认类型:
         *      整数默认int类型
         *      小数默认double类型
         */

        byte i = (byte)128;
        System.out.println(i);

        int a = (int) 3.74;
        System.out.println(a);

        long b = 12121;

        float c = 1.2f;

        double d = 1.33;

        byte o = 2+3;
        System.out.println(o);


        System.out.println(num1.add(num2));

    }
}

类型转换

自动类型转换

数据类型小的数值或变量可以直接赋值给数据类型大的变量

byte a = 2;
int b = a;

在运算过程中,同时有取值范围小的数据类型和取值范围大的数据类型,会先将小的数据类型转换为大的相同类型,然后在计算

byte a = 3;
int b = 5;
int c = a + b; // a会先转换为int型再与b相加最终得到的结果也是int

**特殊:**byte char short三种类型参与运算的时候,会先提升数据类型为int,然后做运算

byte a = 1;
byte b = 2;
int c = a + b; //a和b在相加之前会先提升为int然后相加

强制类型转换

数据类型大的数值或变量不能直接赋值给数据类型小的变量,但是可以进行强制类型转换来实现,但是可能会损失一定的精度

格式:

目标数据类型 变量 = (目标数据类型)被强转的数据;

byte a = (byte)128 // 最后的结果是-128,由于byte类型的数据范围是-128~127,所以128存为byte类型会有精度损失

键盘录入

使用Scanner类来实现键盘录入,可以让程序中的数据变得更加灵活,在不改变程序的前提下,可以让程序中的数据每次不一样

使用方法:

1.导入Scanner类所在的包
import java.util.Scanner
2.创建Scanner对象
   Scanner sc = new Scanner(System.in);
3.使用Scanner类键盘录入数据的的方法
    int num = sc.nextInt(); //键盘录入一个整数
	String s = sc.next();// 键盘录入一个字符串
   

运算符

算数运算符

+	//加法
_ 	//减法
*	//乘法
/	//除法,只能得到整数部分的结果
%	//取余
    
public class Demo01 {
    public static void main(String[] args) {
        /**
         * 作用:对数据进行加(+)、减(-)、乘(*)、除(/)和取余数(%)运算
         *
         * 注意:两个整数相除结果只能是整数,要想得到小数,必须得有小数参与
         */

        int a = 1;
        int b = 2;
        System.out.println(a+b);

        System.out.println(a-b);

        System.out.println(a*b);

        System.out.println(a/b);

        System.out.println(a%b);

        System.out.println(5.0/2);
        System.out.println(5.0/2.0);
        System.out.println(5/2.0);

    }
}
//需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
public class Demo02 {
    public static void main(String[] args) {
        /**
         * 公式总结:
         *      个位 :数值 % 10
         *      十位 :数值 / 10 % 10
         *      百位 :数值 / 10 / 10 % 10
         *      千位 :数值 / 10 / 10 / 10 % 10;
         *      ...
         */

        Scanner sc = new Scanner(System.in);

        System.out.println("请输入三位数的整数");
        int num = sc.nextInt();

        int ge = num % 10;
        int shi = num / 10 % 10;
        int bai = num / 10 / 10 % 10;

        System.out.println("个位:" + ge);
        System.out.println("十位:" + shi);
        System.out.println("百位:" + bai);

    }
}

自增自减运算符

简化变量的+1操作,从原来的a = a+1 ==> a++

分为参与运算和不参与运算的情况

//不参与运算 符号在前在后没有区别
        int count = 2;
        count++;
        System.out.println(count); //结果为3

//参与运算,符号在前先自加再运算,符号在后,先运算再自加

        int a = 3;
        int b = a++;
        System.out.println(b);//b的结果为3,因为a是先参与计算再自加

        int m = 3;
        int n = ++m;
        System.out.println(n);// 结果为4,m是先自加变成4再赋值给n

赋值运算符

"=" 将数据值存入到一个变量中

基本赋值运算

= //把符号右边的值交给符号左边

扩展的赋值运算

+=  // a+=b 相当于 a = a + b;
-=  // a-=b 相当于 a = a - b;
*=  // a*=b 相当于 a = a * b;
/=  // a/=b 相当于 a = a / b;
%=  // a%=b 相当于 a = a % b;
注意:
   扩展的赋值运算默认自带强制类型转换
    a+=2 相当于 a = (a的类型)+2;
    

关系运算符

也叫比较运算符,用来比较符号两边的数据大小关系是否成立

> < == >= <=
特点:他们的结果都是布尔类型,true代表成立 false代表不成立

逻辑运算符

按位逻辑运算符:
& //逻辑与:遇false则false
| //逻辑或:遇true则true
! //非:非真即假,非假即真
^ //相同为false,相反为true

短路逻辑运算符:
&& //短路与:规则和&一样,具有短路效果
|| //短路或:规则和|一样,具有短路效果
    
短路:当符号左边的结果可以决定整体的结果时,符号右边的内容不参与运算

三元运算符

可以根据某一条件是否满足来从两个结果中进行二选一,可以用来比较两个数,得到较大值或较小值
    //需求:键盘录入三个整数,找出最大值并打印在控制台
public class Demo09 {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入三个整数");

        int num1 = sc.nextInt();
        int num2 = sc.nextInt();
        int num3 = sc.nextInt();

        int temp = num1 > num2 ? num1 : num2;

        int max = temp > num3 ? temp : num3;

        System.out.println("最大值为:" + max);

    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值