我是靠谱客的博主 怕孤独抽屉,最近开发中收集的这篇文章主要介绍操作数数据类型 nvarchar 对于 sum 运算符无效_java_Day02: 算术运算符,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

算术运算符

1一元运算符(只需要一个操作数)

1.1 自加运算

i++:表示:先运算后赋值 ++i:表示:先赋值后运算 例如:

int i = 5;
sum = i++;//先计算,后赋值
System.out.println(sum+" "+i)//输出5 6
int i = 5;
sum = ++i;//先赋值,后计算
System.out.println(sum+" "+i)//输出6 6

1.2 自减运算

i--:表示:先运算后赋值 --i:表示:先赋值后运算 例如:

int i = 5;
sum = i--;//先计算,后赋值
System.out.println(sum+" "+i)//输出5 4
int i = 5;
sum = --i;//先赋值,后计算
System.out.println(sum+" "+i)//输出4 4

2二元运算符(需要二个操作数)

+ - * / % 加法运算: + 减法运算: - 乘法法运算: * 除法运算: / 模运算(取余运算): % 例如:

int i = 5,j = 4
sum = i + j;
System.out.println(sum)//输出9
sum = i - j;
System.out.println(sum)//输出1
sum = i * j;
System.out.println(sum)//输出20
sum = i / j;
System.out.println(sum)//输出1
5对4取商
sum = i % j;
System.out.println(sum)//输出1
5对4取余

随堂练习:

要求:

1)获取整数987的百位数、十位数和个位数。

//求一个数的个,十,百,三位数
int num = 699;
int ge,shi,bai;
ge = num % 10;
shi = num/10%10;
bai = num/100;
System.out.println(ge+" "+shi+" "+bai);//输出9 9 6

2)判断一个数是奇数还是偶数;

//判断奇偶
System.out.print("请输入一个数:");
Scanner input = new Scanner(System.in);
int num = input.nextInt();
if(num == 0)
{
System.out.println("既不是奇数也不是偶数");
}
else if(num % 2 == 0)
{
System.out.println("偶数");
}
else
{
System.out.println("奇数");
}

3)int a = 3, b = 4; 求a++ / 3 + --b * 2 - a-- % 6 + b++ * 3 - ++b的值。

//计算过程:
/*
a:3
b:5
sum:3/3+3*2-4%6+3*3-5=1+6-4+9-5=7
*/
int a = 3, b = 4,sum;
sum=a++ / 3 + --b * 2 - a-- % 6 + b++ * 3 - ++b;
System.out.println("a:"+a+"b:"+b+"sum:"+sum);//输出a:3 b:5 sum:7

3 赋值运算

3.1 = 把等号右边的值赋值给左边

随堂练习

要求: 交换两个数的值,三种方法。

public class OperatorDemo02{
public static void main(String[] args){
int num1 = 3,num2 = 5;
/*
//方法一:
//优点:很好理解
//缺点:需要开辟内存空间
int temp;
temp = num1;
num1 = num2;
num2 = temp;
*/
/*
//方法二:
//优点:不需要开辟内存空间
//缺点:难理解
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;
*/
/**/
//方法三:
//优点:效率高(二进制在计算)
//缺点:极难理解
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;
System.out.println(num1+" "+num2);
}
}

经典面试题

int num = 5;
num = num++;
System.out.println(num);//输出结果为5

3.2 扩展赋值运算符

num += m ===> num = (num左边的数据类型)(num + (m));
num -= m ===> num = (num左边的数据类型)(num - (m));
num *= m ===> num = (num左边的数据类型)(num * (m));
num /= m ===> num = (num左边的数据类型)(num / (m));
num %= m ===> num = (num左边的数据类型)(num % (m));

经典面试题:

1、
short num = 11; num = num + 1; 和short num = 11; num += 1;哪一个正确呢?
答:short num = 11; num += 1;正确;
原因:num = num + 1 是整形int与short相加变为int型,而返回结果是short,所以不符合
2、
int sum += 30; 请问这行语句语法是否正确???
答:不符合,因为sum未赋值

例题:

输入三个学生成绩并求平均值(由于担心有的人没学过数组,循环结构,在此用最笨的法子写,谢谢支持) 不知道Scanner从键盘输入可以去看我的另一篇文章

import java.util.Scanner;
public class OperatorDemo03{
public static void main(String[] args){
double sum = 0;
Scanner input = new Scanner(System.in);
System.out.println("请输入第一个学生成绩");
sum += input.nextDouble();
System.out.println("请输入第二个学生成绩");
sum += input.nextDouble();
System.out.println("请输入第三个学生成绩");
sum += input.nextDouble();
System.out.println("平均成绩:"+ sum / 3);
}
}

4.关系运算符(返回的只能是boolean类型)

关系运算符用来进行比较运算,关系运算符的运算结果是boolean类型。

>、<、>=、<=、==、!= 由于过于简单,就不啰嗦了 例题;

1. 定义三个数,然后对这三个数做升序排序。(还是一样,这里只为让大家看得更清晰)

public class OperatorDemo04{
public static void main(String[] args){
int num1 = 4, num2 = 3,num3 = 5;
if(num1 > num2)
{
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;
}
if(num2 > num3)
{
int temp = num1;
num1 = num2;
num2 = temp;
}
if(num1 > num2)
{
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;
}
System.out.println("升序排列为:"+num1+" "+num2+" "+num3);//输出 3 4 5
}

5.逻辑运算符

5.1 & 与

&运算特点: true & true = true; true & false = false; false & true = false; false & false = false; &与运算: 只有两边都为true,结果才为true 否则为false

5.2 | 或

|运算特点: true | true = true; true | false = true; false | true = true; false | false = false; |或运算: 只有两边都为false,结果才为false 否则为true

5.3 && 逻辑与运算, || 逻辑或

&&逻辑与(短路与): 只有两边都为true,结果才为true 只要左侧为false,则右边表达式不执行,直接返回false ||逻辑或(短路或): 只有两边都为false,结果才为false 只要左侧为true,则右边表达式不执行,直接返回true

5.4 ^ 逻辑异或

^运算特点: true ^ true = false; true ^ false = true; false ^ true = true; false ^ false = false; ^运算规律: 运算两边相同,那么结果肯定为false 运算两边不同,那么结果肯定为true

5.5 ! 逻辑非

!运算特点: !true = false; !false = true;

例题:

1)判断一个数是否在4(不包含)~6(包含)之外;

import java.util.Scanner;
public class OperatorDemo05{
public static void main(String[] args){
//2、判断一个数是否在4(不包含)~6(包含)之外;
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数:");
int num = input.nextInt();
if(num > 4 && num <= 6)
{
System.out.println("在");
}
else
{
System.out.println("不在");
}
}
}

2)判断true还是false

/*
int num = 10;
System.out.println(false && (num=5)>3);//false,短路与
System.out.println(num);//10
*/

注意:& 与 &&,| 和 || 区别

&&和&的运算结果是一样的,但是运算的过程有所不同
&:无论左边的运算结果是什么,右边都需要参与运算
&&:如果左边运算结果为false,那么右边就不需要参与运算了,直接返回结果false
如果左边运算结果为true,那么需要进行右边的运算,并返回右边运算的结果
||和|的运算结果是一样的,但是运算的过程有所不同
|:无论左边的运算结果是什么,右边都需要参与运算
||:如果左边运算结果为true,那么右边就不需要参与运算了,直接返回结果true
如果左边运算结果为false,那么需要进行右边的运算,并返回右边运算的结果

6. 位运算(二进制计算)

位运算是直接对二进制进行的运算。(大家可以看我后续的文章),这个小节就不做过多解释

6.1 &位运算

位都为1,结果才为1,否则结果为0 例如:7 & 3 = 3

111
&011
------
011

6.2 |位运算

位只要有一个为1,那么结果就是1,否则就为0 例如:7 | 3 = 7

111
|011
------
111

6.3 ^ 位运算

两个操作数的位中,相同则结果为0,不同则结果为1 例如:7 ^ 3 = 4

111
^011
------
100

6.4 ~位运算

如果位为0,结果是1,如果位为1,结果是0 例如:~6 = -7

0000 0000 0000 0000 0000 0000 0000 0110
取反 1111 1111 1111 1111 1111 1111 1111 1001

7.三元运算符

三元运算符又称为三目运算。 语法格式:条件表达式? 表达式1 : 表达式2 如果条件表达式为true,则取表达式1的值,否则就取表达式2的值。

【随堂练习】

1、获取两个数的最大值或最小值

int a = 5, b = 8,max;
max=a>b?a:b//返回结果 8

8.运算符优先级

关于这节大家不用死记,多敲多练即可。也可以看我后续文章中有更新。

最后

以上就是怕孤独抽屉为你收集整理的操作数数据类型 nvarchar 对于 sum 运算符无效_java_Day02: 算术运算符的全部内容,希望文章能够帮你解决操作数数据类型 nvarchar 对于 sum 运算符无效_java_Day02: 算术运算符所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部