Fork me on GitHub

对Java中变量、常量、运算符以及Scanner对象的学习

用IDEA学习java第二天

变量

变量的定义

  • 变量就是一个可以变化的量

  • java是一种强类型语言,每一个变量都必须声明自己的类型

  • Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型、作用域等。

    数据类型 变量名=值

    int a=5;
    

注意事项

  1. 每个变量都有类型,类型可以是基本类型也可以是引用类型。

  2. 变量名必须是合法的标识符。

  3. 变量声明是一个完整的语句,因此每一个变量声明都必须以分号结尾。

变量作用域

  • 类变量
  • 实例变量
  • 局部变量
public class Demo04 {
    //静态变量从属于类,类变量
    static int money=3000;
    //实例变量,从属于对象,需要通过类来new一个新的对象来调用
    //布尔值默认是false
    //除了基本类型,其他默认值都是null
    String name;
    int age;
    public static void main(String[] args) {
     //局部变量  必须声明和初始化值
        int i=1;
        System.out.println(i);
     //变量类型  变量名字=new Demo04();
       Demo04 demo04=new Demo04();
        System.out.println(demo04.name);
        System.out.println(demo04.age);
     //静态变量,类变量
        System.out.println(money);
    }
    public void add(){

    }
}

常量

常量的定义

初始化之后不会再改变的值,不会变动的值。

所谓常量可以被理解成一种特殊的变量,他的值被设定以后,在程序运行过程中不允许被改变。

final 数据类型 常量名=值

final double PI=3.14;

注意

常量的变量名要使用大写字母

变量的命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:mothSalary ;除了第一个单词外,后面单词的首字母都大写:lastName
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()

运算符

java语言支持如下运算符

  • 算术运算符:+,-,*,/,%,++,--
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!= instanceof
  • 逻辑运算符:&&,||,!

自减自增运算符以及初始Math

package operator;
    public class Demo04{
        public static void mian(String[] args){
            int a=3;
            int b=a++;  //执行这行代码后,先给b赋值,再自增
            //a=a+1
            System.out.println(a);
            //a=a+1
            c=++a;   //执行这行代码之前,先自增,再给C赋值
            System.out.println(a);
            System.out.println(b);
            System.out.println(c);
            
            //幂运算
            Math.pow(2,3);   //二的三次方
        }
}
    

逻辑运算符

&&,||,!

package com.zjl.operator;
public class Demo05{
    public static void main(String[] args){
        //&&(且) ||(或) !(非)
        boolean A=true;
        boolean B=false;
        System.out.println("A&&B:"+(A&&B));//逻辑与运算:两个变量同时为真才为真
        System.out.println("A||B:"+(A||B));//逻辑或运算:两个变量中有一个为真则为真,两个变量同时为假才为假
        System.out.println("!(A&&B):"+!(A&&B));//如果是假则为真,如果为真则为假

        //短路运算
        int c=5;
        boolean d=(c<4)&&(c++<4);
        System.out.println(d);
        System.out.println(c);
    }
}

位运算符

&,|,^,~,>>,<<,>>>(了解即可)

条件运算符

?:

package com.zjl.operator;
public class Demo06{
    public static void main(String[] args){
        int a=10;
        int b=20;
        a+=b;
        //a-=b
        System.out.println(a);
        //由于前面有字符串连接符,所以将后面的变量运算按照字符串结合
        System.out.println(""+a+b);//输出结果为1020
        System.out.println(a+b+"");//输出结果为30

    }
}
package com.zjl.operator;
//三元运算符
public class Demo07{
    //x?y:z
    //如果x==true,则结果为y,否则结果为z
    public static void main(String[] args){
        int score=80;
        String type=score>=60?"考试及格":"考试不及格";
        System.out.println(type);
    }
}

优先级

package com.zjl.operator;
public class Demo08 {   
    public static void main(String[] args) { 
        int a=5;       
        int b=8;        
        int c=70;        
        int d=2;        
        System.out.println((a+d)*b+c);   
    }
}

Java Doc

javadoc命令是用来生成自己API文档的

参数信息

  • @author 作者名
  • @version 版本号
  • @since 指明需要最早使用的jdk版本
  • @param 参数名
  • @return 返回值情况
  • @throws 异常抛出情况

Scanner对象

我们可以通过Scanner类来获取用户的输入

基本语法

Scanner s =new Scanner(System.in);

通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

package com.zjl.base.scanner;
import java.util.Scanner;

public class Demo01{
    public static void main(String[] args){
        Scanner s=new Scanner(System.in);
        System.out.println("使用next的方式接收");
        //判断用户是否输入字符串
        if(s.hasNext()){
            String str=s.next();
            System.out.println("输出的内容为:"+str);
        }
        //凡是属于IO流的类如果不关闭会一直占用资源,所以要养成关闭流的好习惯
        s.close();
    }
}

package com.zjl.base.scanner;
import java.util.Scanner;
public class Demo02{
    public static void main(String[] args){
        //接收用户输入
        Scanner s=new Scanner(System.in);
        System.out.println("使用nextLine的方式接收");
        //判断用户是否输入
        if(s.hasNextLine()){
            String str=s.nextLine();
            System.out.println("输出的内容为:"+str);
        }
        s.close();
    }
}

next()和nextLine()的区别

next():

  • 一定要读到有效字符后才可以结束输入。
  • 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
  • 只有输入有效字符后才能将其后面输入的空白作为分隔符或结束符。
  • next()不能得到带有空格的字符串。

nextLine()

  • 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前所有字符。
  • 可以获得空白。

Scanner进阶使用

package com.zjl.base.scanner;
import java.util.Scanner;
public class Demo03{
    public static void main(String[] args){
        //接受用户输入
        Scanner s=new Scanner(System.in);
        int i=0;
        float f=0.0f;
        System.out.println("请输入整数:");
        if(s.hasNextInt()){
            i=s.nextInt();
            System.out.println("你输入的是整数"+i);
            System.out.println("请输入小数");
        }else{
            System.out.println("你输入的不是整数");
        }

        if(s.hasNextFloat()){
            f=s.nextFloat();
            System.out.println("你输入的是小数"+f);
        }else{
            System.out.println("你输入的不是小数");
        }
        s.close();
    }
}


Scanner小练习

问题:我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果。

package com.zjl.base.scanner;

import java.util.Scanner;

/*我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果*/
public class Demo04 {
    public static void main(String[] args) {
        Scanner s=new Scanner(System.in);
        int m=0;
        double sum=0;
        double a=0;
        while (s.hasNextDouble()){
             a=s.nextDouble();
            m++;
            sum=sum+a;
        }
        System.out.println("sum="+sum);
        System.out.println("avg="+sum/m);
    }
}


posted @ 2020-11-11 20:49  乐二啊  阅读(102)  评论(0)    收藏  举报