第二章 变量与运算符

什么是变量?

    变量是编程语言中最基本的概念,是计算机语言中能储存计算结果或能表示值抽象概念。

    Java中的变量使用计算机的内存来保存数据,是保存数据的最小单位;变量在内存中开辟独立的空间,互不干扰。

 

数据类型

            

 

变量名规则

    1.      变量名不能以数字开头,除了“_”、“$”、字母、数字,变量名中不能包含其他标点符号或运算符

    2.      变量名不能使用Java语言中的关键字

    3.      在同一作用域,变量名必须唯一

 

定义变量

    数据类型 变量名 [=初始值] ;

public class D2 {
	public static void main(String[] args) {
		int a ;
		a = 30 ; // 先定义变量 后赋值
		
		short b = 40 ; // 在定义变量的同时对变量进行赋值	
		
		long x ,y ,z ; // 连续定义多个变量 中间用逗号隔开
		byte i = 10 ,j = 20 ,k = 15 ; // 连续定义多个变量并赋值初始化
	}
}

注:变量必须先定义声明后使用 ;变量未赋值不能使用

public class D1 {
	public static void main(String[] args){

		String name = "墨渐生微" ; 	//		保存姓名---字符串
		char sex = '男' ;         	//		保存性别---字符
		double height = 175.3 ;  	//		保存身高---浮点数
		int age = 21 ;          	//		保存年龄---整型
		boolean isMarry = false ;   //		保存婚否---布尔型		
	}
}

 

输出变量

    System.out.println(变量名) ;

 

Scanner类的使用:接收用户在控制台输入的信息

    1.导入包中的类

    2.创建Scanner对象

    3.调用方法接收用户的输入

//1.导入类
importjava.util.Scanner;

/*
 * Scanner类的基本使用
	*/
public class D7 {
	public static void main(String[] args) {
		// 2.创建Scanner对象
		Scanner input  = new Scanner(System.in) ;
		// 3.接收用户输入的整数
		intnum = input.nextInt() ;
		// 4.打印
		System.out.println("用户输入的是:"+num);
	}
}

 

Scanner类其他方法的调用

importjava.util.Scanner;

public class D8 {
	public static void main(String[] args) {
		Scanner input  = new Scanner(System.in) ;
		// 接收整型
		int num1 = input.nextInt() ;	
		// 接收浮点型
		double num2 = input.nextDouble() ;
		// 接收布尔型
		boolean flag = input.nextBoolean() ;
		// 接收字符串
		String msg  =input.next() ;
	}
}

 

判断用户的输入

import java.util.Scanner;
public class D1 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个整数:");
		// 调用判断用户输入的值是否合法
		boolean flag = input.hasNextInt(); // 判断用户输入的值是否是一个整数
		// 接收用户输入的值,上处只是判断并未做任何处理
		int num = input.nextInt();
	}
}

注:Scanner类中的hasNextInt()方法和nextInt()方法配合使用;hasNextInt()方法判断输入是否合法,nextInt()接收输入的数据;单独调用其中任一个方法,都会让用户输入,但是配合使用并不会输入两次

 

数据类型转换

    自动类型数据转换:1.数据类型要兼容  2. 目标类型高于源类型

    强制类型转换:1.数据类型兼容 2.数据可能会丢失精度 3.浮点型转化为整型不是四舍五入,而是直接舍弃小数位

         (目标类型)源类型

public class Data {
	public static void main(String[] args) {
		
		// 自动类型转换
		int num1 = 66 ;
		long num2 = num1 ;
		double num3 = num2 ;
		
		// 强制类型转换
		double num4 = 23.66 ;
		float num5 = (float) num4 ;
		int num6 = (int) num5 ;		
	}
}

 

运算符

    算术运算符

/*
 * 算术运算符
 * 
 * */
public class Num {
	public static void main(String[] args) {
		int a = 11, b = 3;
		int num1 = a + b; // 加法
		int num2 = a - b; // 减法
		int num3 = a * b; // 乘法
		int num4 = a / b; // 除法
		int num5 = a % b; // 取余
		// 加法还有拼接字符串与其他数值或字符串的功能
		System.out.println("a+b="+num1+"\na-b="+num2+"\na*b="+num3+"\na/b="+num4+"\na%b="+num5);
		/*
		 * 注:取余运算必须是整数,取余运算是作除法之后的余数,且值的正负只与被取余数的正负有关
		 * 	   除法是乘法的逆运算,除数与被除数都是整数,则商也是整数;除数与被除数有任一是浮点数,则商也是浮点数;
		 */
	}
}
public class D2 {
	public static void main(String[] args) {
		int a = 6, b = 7;
		
		System.out.println(a++);
		System.out.println(a);

		System.out.println(++b);
		System.out.println(b);
		/*
		 * 注:自增自减运算符都是值增或减1,但是作为表达式却有不同的值。
		 * ++在前,先自增,后作为表达式的值
		 * ++在后,先作为表达式的值,后自增
		 * */
	}
}

 

关系运算符

     ==:等于

    !=:不等于

    >    :大于

    <    :小于

    > =  :大于等于

    <=   :小于等于

 

逻辑运算符

    &&   称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。

    | |  称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。

    !   称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true

则逻辑非运算符将得到false

注:短路功能—》在逻辑与运算时,前操作数为false,直接返回false,不再执行后操作数;在逻辑或运算时,前操作数为true,直接返回true,不再执行后操作数

注:关系运算符和逻辑运算符都能返回boolean类型的结果

 

位运算符

    &    按位与,也具有逻辑与的功能,但不具备短路功能

    |     按位或,也具备逻辑或的功能,但不具备短路功能

 

赋值运算符

    = : 赋值运算符,将右操作数的值赋给左侧操作数

    += : 加和赋值操作符

    -= : 减和赋值操作符,

    *= : 乘和赋值操作符

    /= : 除和赋值操作符

    %= : 取余和赋值操作符

   例:a %= b ; 等价于  a = a%b ;

 

优先级别:

       算数 > 关系 > 逻辑 > 赋值

 

其他运算符

    条件运算符(  ?   :     )

       条件运算符也被称为三元运算符、三目运算符

         详见下章!

猜你喜欢

转载自blog.csdn.net/Mythology_px/article/details/81359518