JAVA学习日记(day2)

数据类型:

一、基本数据类型

1.1. 数值型

整数类型(byte、short、int、long)

整数类型位数字节数说明数字空间大小
byte81在运算时会自动转换升级为int。-128~+127
short162short不能直接和byte进行转换需要先转换成int,运算时会自动升级为int。-32768~+32767
int324系统默认为int。-2^31~+2^31-1
long648特殊声明需要在数字后加L否则会报错。-2^63~+2^63-1

浮点类型(float、double)

浮点类型位数字节数说明
float324特殊声明需要在数字后面加F。
double648系统默认为double。
1.2. 字符型(char)

char 16位 2字节 赋值时需要用' '包裹,只能放入一个字符或者编码。

1.3. 布尔型(boolean)

值只有true和false,用于做条件。能两个不参加算术运算。

二、引用数据类型

2.1. 类(class):

String和基本类型基本一样,但是是引用类型。

2.2接口
2.3数组

作为引用类型可以防止传送形参。

类型转换需要类型兼容。

运算符:

一、算术运算符

  • +

    两端是数值或者可以转换为数值,表示加法。

    char a='a';
    int b=4;
    int c=a+b;//101

    如果一端为String,则表示链接符号,结果为String

    int age=20;
    String msg="年龄";
    String str=msg+20;//年龄20
  • /

    整数相除,结果为整数。

    其中一方为浮点数,结果为浮点数。

    整数相除,当除数为0时,系统发生算术异常。当被除数是浮点数时,结果为无穷。

    作用:

    分解数字。

    //获取一个三位数每一位上的数字
    int num=123;
    int b_w=num/100;//百位
    int s_w=num%100/10;//十位
    int g_W=num%10;//个位
  • %

    %运算结果的正负只与被取余数有关,(-5)%3=-2,5%(-3)=2。

  • ++、--

    可以实现变量的自加与自减。

    运算符的贪婪法则:

    一个运算符发现紧跟着的符号与自己一致,则成一对。

    int a=10;
    int b=10;
    int c=a+++b;//a++ +b//a=11,b=10,c=20
    int d=a+(++b)//a=10,b=11,d=21

二、 赋值运算符

运算符运算范例结果
=a=ba=2,b=3a=3,b=3
+=a=a+ba=2,b=3a=5,b=3
-=a=a-ba=2,b=3a=-1,b=3
*=a=a*ba=2,b=3a=6,b=3
/=a=a/ba=2,b=3a=0,b=3
%=a=a%ba=2,b=3a=2,b=3

除了直接的赋值运算,剩余的赋值运算在与比自己类型内存空间大的类型运算时,会自动进行强制类型转换。

三、 比较运算符

运算符范例结果
==(等于)4==3false
!=(不等于)4!=3true
>4>3true
<4<3false
>=4>=3true
<=4<=3false

==、!=、>=、<=中间没有空格为防止==出现错误,可以把常量写在左边。

四、 逻辑运算符

运算符名称作用
&&左右全为true才为真。
||满足一项为true即可,左边为true右边不执行。
取反。

五、 位运算符

运算符运算作用
&位与对每一位数进行与运算(相同为1)
|位或对每一位数进行或运算(有1为1)
<<左移转化为二进制后所有数字左移,空位补0
>>右移转化为二进制后所有数字右移,多余清除
^异或对每位数字进行异或(相同为0不同为1)

逻辑运算符与位运算符的异同(&&、&、|、||)

  • 运算结果都为boolean值

  • 区别

    • 逻辑运算符两边为boolean值,位运算符两边是二进制数据

    • 逻辑运算符会短路,位运算符不会

  • 实际开发使用逻辑运算符多

与系统交互

  • 事先导入数据包

import java.util.Scanner;
  • 调用扫描函数

Scanner sc = new Scanner(System.in)
  • 选择扫描范围

String name = sc.next();//遇到空格结束
String msg=sc.nextLine();//读取整行
int n=sc.nextInt();//读取第一个整数
double price=sc.nestDouble();//读取第一个浮点数

流程控制

        6.1 选择结构

                6.1.1 if语句

                单一结构

                

//发奖金,没人发2万,如果超过5年,再多发2万
//输出奖金额度
public static void demo1(){
 Scanner sc=new Scanner(System.in);
 System.out.print("请输入您的工龄:");
 int year=sc.nextInt();
 double money=2;
 if(year>=5){
 money+=2;
 }
 System.out.println("奖金额度为:$"+money+"万");
 }

                二选一

public static void demo2(){
 Scanner sc=new Scanner(System.in);
 //请输入一个三位数 121 222  343
System.out.println("请输入一个三位数:");
 int num=sc.nextInt();
 if(num>=100 && num<1000){
 int b=num/100;
 int g=num%10;
 if(b==g){
 System.out.println(num+"是回文数字");
 }else{
 System.out.println(num+"不是回文数字");
 }
 }else{
 System.out.println("请按规则输入三位数");
 }
 }

                多选一(以计算器为例)

import java.util.Scanner;

public class calculato {
    public static void main(String[] args) {
        System.out.println("欢迎使用计算器,以下是该计算器的说明文档。"+'\n'+
                "首先选择你需要的计算,只需等待提示后输入该计算对应的标识数字"+'\n'+"+ --- 0"
                +'\t'+'\t'+"- --- 1"+'\n'+"× --- 2"+'\t'+'\t'+"÷ --- 3"+'\n'+"% --- 4"+'\t'+'\t'+"² --- 5"+'\n');
        while(true){
            System.out.print("请选择你需要的运算:");
            Scanner sc = new Scanner(System.in);
            int type=sc.nextInt()%6;
            if(type==5){
                System.out.print("请输入一个操作数");
                int a=sc.nextInt();
                a*=a;
                System.out.println("结果为:"+a);
            }
            else{
                System.out.println("请输入两个操作数");
                switch(type){
                    case 0:
                        int a=sc.nextInt();
                        int b=sc.nextInt();
                        System.out.println("结果为:"+(a+b));
                        break;
                    case 1:
                        int c=sc.nextInt();
                        int d=sc.nextInt();
                        System.out.println("结果为:"+(c-d));
                        break;
                    case 2:
                        int e=sc.nextInt();
                        int f=sc.nextInt();
                        System.out.println("结果为:"+(e*f));
                        break;
                    case 3:
                        int g=sc.nextInt();
                        int h=sc.nextInt();
                        if (g*h==0)
                            System.out.println("输入不合法");

                        break;
                    case 4:
                        int j=sc.nextInt();
                        int k=sc.nextInt();
                        if (j*k==0)
                            System.out.println("输入不合法");
                        else
                            System.out.println("结果为:"+(j%k));
                        break;
                }
            }
        }
    }
}

  • 14
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值