目录

一、变量声明

         变量声明的格式:

         变量声明需要注意的问题:

         变量的作用域:

二、数据类型转换

 三、用户输入

               next()&&nextln()

                判断用户输入


一、变量声明

         变量声明的格式:

                     数据类型  变量名  [=初始值] [,变量名  [=初始值]…];  []表可选
                    案例:

                            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("您输入的数字  不是整型!!!!");
        }
	}
}

java动态声明变量的类型 java变量声明语句_经验分享

java动态声明变量的类型 java变量声明语句_经验分享_02