目录
一、变量声明
变量声明的格式:
数据类型 变量名 [=初始值] [,变量名 [=初始值]…]; []表可选
案例:int age = 19;
int age = 19 , age2 = 90 ;
int age,age2;
变量声明需要注意的问题:
在声明一个变量时,一定要对其赋值,否则编译时会报错!!!
变量不可重复定义;例如 int a = 10;后面又写 int a = 30;这样系统会报错!!!
变量的作用域:
作用域:指的就是作用范围,变量在什么范围中有效
!!!!!作用范围就是离它最近的{} !!!!!/* 局部变量:定义在方法中 成员变量:定义在类中,方法外 */ public class TestVar04{ int b = 20; //成员变量 public static void main(String[] args){ System.out.println(a); // 报错,此时局部变量 a 没定义 int a = 10; // 定义 局部变量 a System.out.println(a); // 打印成功 System.out.println(b); //打印成功,因为b为成员变量作用与相距最近TestVar04{} { int c = 40; System.out.println(c);//yes int a = 50;//属于变量的重复定义 } System.out.println(c);// 局部变量c 只作用于上面 {} } public void eat(){ //另一个方法 eat System.out.println(b);//yes System.out.println(a);//no int a = 30;//不是变量的重复定义 System.out.println(a);//yes } }
二、数据类型转换
什么是类型转换:
在赋值运算或者算数运算的时候,要求数据类型一致,就要进行类型的转换。类型转换的种类:
- 自动转换 :double d = 6;//int-->double 自动类型转换
- 强制转换 : int i = (int)6.5;//double--->int 强制类型转换 (强转)
在同一个表达式中,有多个数据类型的时候,应该如何处理:多种数据类型参与运算的时候,整数类型,浮点类型,字符类型都可以参与运算,唯独布尔类型不可以参与运算。
double d2 = 12+1294L+8.5F+3.81+'a'+true; 错误!!!!
double d2 = 12+1294L+8.5F+3.81+'a'; 正确!!!!
类型级别:(从低到高的)
byte,short,char-->int--->long--->float--->double
级别用来做什么?当一个表达式中有多种数据类型的时候,要找出当前表达式中级别最高的那个类型,然后其余的类型都转换为当前表达式中级别最高的类型进行计算。例如:
double d2 = 12+1294L+8.5F+3.81+'a';
相当于: 12.0+1294.0+8.5+3.81+97.0想打破 这种级别,就可以采取“强制转换”
int i2 = (int)(12+1294L+8.5F+3.81+'a');
在进行运算的时候:
左=右 : 直接赋值 即 int a = 10 ,这种就直接赋值了
左<右 :强转 int a = 10.55d 这就要采取 强转 即 int a = (int)10.5d
左>右 :直接自动转换 double a = 10 ,自动转换了 相当于 double a = 10.0d
三、用户输入
next()&&nextln()
在java中,用户的输入,有很多方法;比如要求输入一个整型数字,可以使用"input.nextInt()"。
今天,主要介绍一下 next() && nextln()
- 首先,两者接收到的 数据类型 都是字符串String
- next(),接收到空格时,表示接收数据结束!(即只接 受 空格 前面的数据!)或者接收到回车键,也会结束
- nextln(),则是在接受到 回车键,才结束数据接收
next() 必须接收到有效数据,如:要输入“123”:
在输入之前 先输入几个空格,
然后在输入“123”,
然后空格/回车 结束。
next()接收到的 仍是 “123”
判断用户输入
在编写程序时,我们明明是想要 从键盘 获取一个整型 数据,但是用户一旦输入的不是整型数据,我们的程序就会报错、崩溃掉。
而别人来运行我们的程序时,看见这样的报错、第一时间可能不会知道,是因为数据类型错误,引起的。
所以根据需要,我们可以利用 "input.hasNextInt()" 来判断 用户输入的 是否是整型数据,是则正常流程,不是则打印 提示信息。
要判断其他类型的数据,则修改Next后面的 数据类型。如判断浮点型,为“
input.hasNextFloat
”
下面直接上代码:
package com.kaikeba.demo1; public class Demo6 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入:"); if (input.hasNextInt()) { int num = input.nextInt(); System.out.println("输入的是:"+num); }else { System.out.println("您输入的数字 不是整型!!!!"); } } }