java变量

本文详细介绍了Java编程中的变量概念、基本数据类型(整数、浮点数、布尔、字符)及其转换规则,还涵盖了运算符的使用,包括算术、关系、逻辑和三元运算符。此外,还展示了如何接收键盘输入以及解决编程作业问题,如变量交换、条件判断等。
摘要由CSDN通过智能技术生成

### Java变量

#### 一、变量的概念

> 包含变量的类型、名称、值。
>
> 定义的方式:
>
> 1.先定义,后赋值
>
> 2.定义并赋值
>
> 3.定义多个相同类型数据并赋值

```java
/**
* 当前为第一个类
*/
public class First{
    /**
    * 当前为主方法
    * args:输入的参数
    * 
    */
    public static void main(String[] args){
        // int 整数
        int num; // 先定义
        
        num = 10; // 后赋值

        System.out.print(num);

        // 定义并赋值
        int num1 = 20;
        System.out.print(num1);

        // 一次定义多个相同类型的变量,并赋值
        int a = 30, b = 40;
        System.out.print(a);
        System.out.print(b);
    }
}
```

#### 二、基本数据类型

> 8种:
>
> 整数:
>
> byte:1字节
>
> short:2字节
>
> int:4字节  默认类型
>
> long:8字节 应该在数字的最后加一个L

> 小数(浮点数),采用科学计数法,所以不精确
>
> float:4字节,应该在数字最后加上F
>
> double:8字节,默认类型

> 布尔类型
>
> boolean:true或者false

```java
public static void main(String[] args){
    // int 整数
    int num; // 先定义

    num = 10; // 后赋值

    System.out.print(num);

    // 定义并赋值
    int num1 = 20;
    System.out.print(num1);

    // 一次定义多个相同类型的变量,并赋值
    int a = 30, b = 40;
    System.out.print(a);
    System.out.println(b);

    // 整数
    byte by = 10; // 1字节
    short s = 300; // 2字节
    int i = 2074927349; // 4字节
    long l = 25000000000L; // 8字节(超出int范围的大数字需要加一个L,可以大写也可以小写)

    // 小数
    float f = 55533333334.1415926535897932384626F;//(float类型必须加f)
    System.out.println(f);
    double db = 55533333334.1415926535897932384626;
    System.out.println(db);

    // 布尔
    boolean boo = true;

    // 
}
```


> char:字符类型,2字节
>
> ASCII:美国标准信息交换码,1字节,通常表示数字字母符号等
>
> unicode:万国码,2字节,能表示多个国家的文字,Java中char使用此编码
>
> GB2312、GBK、GB18030,2字节,表示简体中文
>
> UTF-8统一传输格式,以1个字节为每次传输长度。如果是英文字母数字符号等就是1个字节,如果是中文等多国文字,长度3到4个字节。
>
> 乱码:乱码出现的原因是因为写入的编码和读取的编码不一致导致。

```java
public static void main(String[] args) {
    // 第一种赋值方式:采用单引号
    char ch = 'A';
    System.out.println(ch);
    char ch1 = '中';
    System.out.println(ch1);
    // 第二种赋值方式,采用数字(ASCII编码)
    char ch2 = 97;
    System.out.println(ch2);
    // 第三种赋值方式,采用万国码(unicode)
    char ch3 = '\u0041'; //16进制0041==十进制4*16+1=65
    System.out.println(ch3);
}
```

```java
public static void main(String[] args) {
    // 转义字符
    char ch = '\''; // 单引号
    System.out.print(ch);
    char ch2 = '\n'; //换行
    System.out.print(ch2);
    char ch3 = '\t'; // tab键
    System.out.print(ch3);
    char ch1 = 'A';
    System.out.print(ch1);
}
```

#### 三、引用数据类型之字符串

> 由一串字符组成,写在双引号之间,可以有0个或多个字符。
>
> [注意:]()char类型的字符必须有且仅有一个字符。

```java
public static void main(String[] args) {
    // 字符串,由一长串字符组成
    String str = "你是空色即是空的空空";
    System.out.println(str);
    String str1 = "王";
    System.out.println(str1);
}
```

#### 四、类型转换`[重点]`

> 类型转换:
>
> 小的类型的数据放入到大的类型中,会自动类型转换。
>
> 大的类型数据放入到小的类型中,需要强制转换,不管值是多少。
>
> 当强制类型转换时,如果值符合小的类型的范围,则几乎没有影响。如果超出了范围,则会截断。
>
> [注意:]()布尔类型不能转换成其他类型

```java
public static void main(String[] args) {
    // 类型转换
    // 自动类型转换(小数据类型值放入到大的数据类型变量中)
    byte b = 10;
    short s = b;
    int i = s;
    long l = i;
    // 强制类型转换(大数据类型值放入到小的数据类型变量中)
    long l1 = 1;
    int i1 = (int) l1;
    short s1 = (short)i1;
    byte b1 = (byte)s1;

    // 整数和浮点数之间的转换
    // 浮点数是以科学计数法,所以大小范围比long要大,把一个long的数据放到浮点里是可以的
    // 要把浮点数放到整数类型中,丢失小数部分,需要强制转换
    long l2 = 23479237427427942L;
    float f = l2;
    long l3 = (long)f;
    double db = f;
    float f1 = (float)db;

    // 与char之间的转换
    // char虽然是两个字节,但是存放方式是万国码,范围为0-65535,没有负数
    char a = 'A';
    byte b2 = (byte)a;
    short s2 = (short)a;
    int i2 = a;
    long l4 = a;

    char ch = (char)b2;
    char ch1 = (char)s2;
    char ch2 = (char)i2;
    char ch3 = (char)l4;
}
```

```java
public static void main(String[] args) {
    // 类型转换后的值
    // 超出范围,(例如,比最大值大一个,就变成最小值,比最小值小一个就变成最大值)
    short s = -130;
    byte b = (byte)s;
    System.out.println(b);

    // 把整数放到小数中,输出时后面有.0,把小数放到整数中,小数部分舍去,整数部分按照整数类型的转换规则
    int i = 100;
    double db = i;
    System.out.println(db);
    float f = 1.81F;
    int n = (int)f;
    System.out.println(n);
    float f1 = 128.35F;
    byte b2 = (byte)f1;
    System.out.println(b2);

    // char类型与其他类型的转换,可以把char当作数字类型,范围是0-65535
    char ch = 'A';
    byte b3 = (byte)ch;
    System.out.println(b3);

    char ch1 = '中';
    int i3 = (int)ch1;
    System.out.println(i3);

    short s1 = 20014;
    char ch2 = (char)s1;
    System.out.println(ch2);
}
```

#### 五、运算符

##### 5.1 二元算术运算符

>与数学中基本一致。
>
>[注意:]()乘法和除法的符号。整数除以整数结果是整数,浮点数运算不精确。

```java
// 算术运算符(二元运算符)
int i = 5 + 3; // 加
System.out.println(i);
double d = i - 0.1; //减
System.out.println(d);
int j = 3 * 6;//乘
System.out.println(j);
double k = 6 / 4;// 除(整数除以整数结果是整数)
System.out.println(k);
int n = 5 % 3; // 求余数
System.out.println(n);

int m = 5;// m:5
m = m + 2;// m:7
System.out.println(m);
```

##### 5.2 一元算术运算符

> ++自增1,在前表示先自增后参与运算,在后表示先参与运算后自增。
>
> --自减1,在前表示先自减后参与运算,在后表示先参与运算后自减。

```java
// 一元运算符
        int n1 = 3;
        n1++; // n1 = n1 + 1;自增1
//        n1 += 1; // n1 = n1 + 1;
        System.out.println(n1);
        
        int n2 = 5;
        ++n2; // n2 = n2 + 1;//自增1
        System.out.println(n2);
        
        int n3 = 2;
        int n4 = 5 + n3++; // ++在后面先参与运算,后自增
        System.out.println(n3);
        System.out.println(n4);
        
        int n5 = 2;
        int n6 = 5+ ++n5; // ++在前面先自增,后参与运算
        System.out.println(n5);
        System.out.println(n6);
        
//        int n7 = 2;
//        int n8 = ++n7 + ++n7 + ++n7; // ++在前面先自增,后参与运算
//        System.out.println(n7);
//        System.out.println(n8);
        
        // --表示自减1,与++用法一样
```

##### 5.3 赋值运算符

```java
public static void main(String[] args) {
    // 赋值运算符
    int n = 1;
    n+=5; // n = n + 5; 自增5
    n-=5; // n = n - 5; 自减5
    n*=5; // n = n * 5;
    n/=5; // n = n / 5;
    n%=5; // n = n % 5;
}
```

##### 5.4 关系运算符

> [注意:]()
>
> - 结果是布尔值。
> - 符号是一个整体,中间不能加空格。
> - 等于(==)和不等于(!=)的符号。

```java
public static void main(String[] args) {
    // 关系运算符
    boolean b1 = 5 >= 3;
    int n = 6;
    boolean b2 = n <= 20;
    boolean b3 = n == 5;
    boolean b4 = n != 6;
}
```

##### 5.5 逻辑运算符

```java
public static void main(String[] args) {
    // 逻辑运算
    int n1 = 98;
    int n2 = 100;
    int n3 = 95;
    // 逻辑与(并且)
    boolean b1 = n1 == 100 && n2 == 100;
    System.out.println(b1);
    // 逻辑或(或者)
    boolean b2 = n1 == 100 || n2 == 100 || n3 == 95;
    System.out.println(b2);
    // 逻辑非(取反)
    boolean b3 = !(n1 == 100 && n2 == 100);
    System.out.println(b3);

    // 逻辑与和逻辑或都有短路的效果(即在前面的表达式判断过程中,如果已经能够确定整体的值,则后面的表达式不会进行判断)
}
```

##### 5.6 三元运算符

> 使用?:来实现如果,否则的效果。

```java
public static void main(String[] args) {
    // 三元运算符(?:)
    // 如果你有100万,买一辆车,否则就来学Java
    int n = 9800000;
    String str = n >= 1000000 ? "买一辆车" : "来千锋学Java";
    System.out.println(str);
}
```

#### 六、接收键盘输入

> 首先需要导入Scanner类。
>
> Scanner input = new Scanner(System.in);

```java
import java.util.Scanner;

public class MyDemo11 {
    public static void main(String[] args) {
        // 控制台输入
        Scanner input = new Scanner(System.in);
        System.out.println("请输入你的钱:");
        // 如果你有100万,买一辆车,否则就来学Java
        int n = input.nextInt(); // 输入整数
        System.out.println("请输入你的房子的数量");
        int m = input.nextInt();
        String str = n >= 1000000 ? "买一辆车" : "来千锋学Java";
        System.out.println(str);
        System.out.println("你房子的数量为:" + m);
        
        // 输入小数
//        input.nextFloat();
//        input.nextDouble();
//        // 输入布尔
//        input.nextBoolean();
//        // 输入字符串
//        input.next();
//        // 输入字符
//        input.next().charAt(0);// 得到字符串的第一个字符
    }
}
```

> 作业:
>
> 1、定义两个整型变量并给它们赋值,定义第三个整型变量,将前两个变量的和赋值给它,输出第三个变量的值。int num1 =10; int num2 = 20; int num3 = num1 + num2;
>
> 2、使用双精度浮点型(double)变量保存商品的价格,给变量赋值,然后输出变量值。
>
> double price = 55.6;
>
> 3、使用变量保存游戏角色的攻击力(float)、血量(short)、级别(byte)等信息,并输出。
>
> float attack = 89.5F;
>
> short hp = 560;
>
> byte level = 99;
>
> 4、定义两个变量,交换两个变量的值并输出。
>
> int a = 3; int b = 5;
>
> int c = b;
>
> b = a;
>
> a = c;
>
> 提示:借助第三个变量
>
> 酱油 和 醋 瓶子进行交换
>
> 1)拿空瓶子来,把酱油导入空瓶
>
> 2)把醋导入酱油瓶
>
> 3)把空瓶里的酱油导入醋瓶

> 作业2:
>
> 1、请推断res1,a,b最后的值,并说明计算过程。
>
> int a = 3;
>
> int b = 2;
>
> int res1 = (a++)*(--b) + (--a)/(b++);
>
> // int res1 = 3 * 1 + 3 / 1;
>
> 2、从控制台输入一个4位数整数,定义4个变量将此整数的个十百千位数字分别取出赋值并输出。
>
> 3、判断闰年的规则是:年份能被400整除,或者年份能被4整除并且不能被100整除, 定义一个年份变量,输出true和false表示是否闰年
>
> 4、定义年龄变量和姓名变量,如果年龄大于35,姓名为老王,否则姓名为小王,用三元运算符实现。
>
> 5.定义变量保存你家的存款和房子数量,如果存款超过2000000并且房子数大于3,输出可以在家睡觉了,否则输出来千锋学java
>
> 6、定义变量保存系统的账号和密码,如果账号等于"zhangsan"并且密码等于"123aaa",就显示欢迎登录系统,否则提示账号或密码错误。
>
> 7、从控制台输入一个三位的整数,判断该数是否是水仙花数(数字等于三个位数的立方和)数字 = 个位数的立方 + 十位数的立方 + 百位数的立方 ,是的话输出是水仙花数否则输出不是。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值