从零开始的Java学习指南

#day03
##运算符
###算数运算符
在Java中运算符包括“+ - * / % 、++、–”,分别是加、减、乘、除、求模(去余数)、自增一与自减一其用法与在数学中的用法类似,可以通过以下案例进行分析:

public staitc void main(String [] args){

	int a = 15;
	int b = 2;
	System.out.println(a+b); 
	System.out.println(a+b);
	System.out.println(a+b);
	System.out.println(a+b);
	System.out.println(a+b);
	System.out.println(a+b);	
}

通过运行上述代码,我们可以得到如下结果:
17 13 30 7 1

我们可以发现在上述案例中加、减、乘,最终结果均无问题。
但是在进行除法运算的时候我们却得到了一个“7”,这个结果与我们之前所学的是存在一定的出入的。为什么会造成这种问题呢?原因如下

在我们定义的时候就已经将a、b两个变量定义为了int型,在Java中两个int型变量的运算只能得到一个int型,所以该结果的小数部分是被舍去了。那么我们该如何重新的到这个小数部分呢?我们通过以下代码进行分析:



		System.out.println(1.0*a/b);
		System.out.println((double)a/b);
		System.out.println((double)(a/b));
		System.out.println(a/b*1.0);

通过上述代码可以得到如下结果

7.5 7.5 7.0 7.0

通过对上述案例的分析我们可以发现,如果在进行7/5之前,其中一个数被转换为double后,我们是可以正常得到小数部分的,但是如果在得到7/5的运算之后,在将结果转换成double型,对于已经得到的最终结果来说是没有任何意义的。
在分析完以上运算符之后,我们在来分析“++”和“–”,为了深入理解,首先先对以下案例进行分析:

int a = 2;

int b = 2;

System.out.println(++a);

System.out.println(b++);

通过实际运算,我们发现其得到的结果为
3 2
为什么会产生这样的区别呢?原因是在Java中,对于“++变量名称”,其运算顺序为先对变量进行运算操作,然后执行我们上述的输出语句,而在“变量名 ++”中,是先执行了其中的输出语句,然后在进行了变量的自增。与之类似的–也是同理。

###赋值运算符

赋值运算符包括“= 、+=、-=、*=、/=、%=”,其作用是将等号右边的值,赋值给左边,如a+=b;相当于a=a+b;,不过需要注意的是,在执行该类语句时,每个语句都包含了一个默认的强制类型转换。

###关系运算符

关系运算符包括“==、!=、>=、<=、> 、<、instanceof”,分别为“等于、不等于、大于等于、小于等于、大于、小于”其中instanceof 是用来 判断对象是否属于类,只能用于引用数据类型,。

###逻辑运算符
逻辑运算符分为“&”与、“|”或、“”异或和“!”非。逻辑运算符一般用来连接布尔类型的值。在&中,只有两个值都是true的时候在是true,而在|中,只要存在一个true,那么就为true。而是指连接的两个量,相同为false,不同为true,在!中,!false = true,!true= false。
###短路运算符
短路运算符分为“&&和||”其用法与分别于&和|类似,但是于他们的最大的不同是,采用&&和||是,一旦当结果确定的时候,剩下的运算就不会进行了。
###位运算符
& ^ | 连接整数, 需要把整数转成二进制的补码,逐位进行运算,把0当成false,把1 当成true

针对二进制位进行操作的运算符包含<<(左移空位补0,高位丢弃)>>(右移,空位补最高位)>>>(无符号右移,空位都补0 )
###三目运算符
其格式为

(关系表达式)? 表达式1:表达式2;

在执行过程中
如果条件为true,运算后的结果是表达式1;

​ 如果条件为false,运算后的结果是表达式2;

​ 表达式1和表达式2的最终结果是一个明确的值(可以是变量,也可以是常量, 不能是打印语句)

##Scanner
java.util.Scanner 使我们可以通过 Scanner 类来获取用户的输入。其流程如下

1.导包: 把我们需要使用到的类,导入到我们程序中

import 包名.类名;在此案例中,可以通过如下代码执行导包操作

import java.util.Scanner;

2.创建对象

在Scanner中,需要执行以下操作

Scanner 对象名 = new Scanner(System.in);

3.获取键盘的录入信息

对象名.nextInt();// 获取键盘录入的整数,如下

 ​			​	对象名.nextShort();
 ​			​	对象名.nextLong();
 ​			​	对象名.nextFloat();// 小数
 ​			​	对象名.nextDouble();
 ​			​	对象名.nextChar(); 这个方法是没有的
 ​				对象名.nextLine();		//获取字符串

##实例
通过今天的学习,我们需要实现以下功能,

1.通过键盘输入三个int型变量

2.通过三目运算符的方式比较除最大的数

代码如下

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入数字a、b、c");
    int a  =sc.nextInt();
    Scanner xc = new Scanner(System.in);
    int b = sc.nextInt();
    int c = sc.nextInt();
    int Max = (a>b)&&(a>c)?a:(b>c?b:c);
    System.out.println(Max);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值