一次就让你学懂java运算符
运算符相关概念
运算符:首先是它就是一个符号,是什么符号呢,对变量和常量进行操作的符号。
表达式:常量或变量被运算符连起来的式子,当然是连起来要符合java语法的式子
运算符我们会碰到哪些嘞:
算术运算符
+、-、*、/、%(取余) 区别: /获取两个数据相除的商,%获取两个数据相除的余数 例子:6/4=1 ;6%4=2
注意:整数相除只能得到整数,想获得小数就得有浮点数的参与。
System.out.println(6/4); //结果为1 System.out.println(6/4.0); //结果为1.5
(1)字符参与加法运算:字符在计算机中存储所表示的数据值来运算
为什么字符会有数值:ASCII码是美国(国家)信息交换标准(代)码,一种使用7个或8个二进制位进行编码的方案,最多可以给256个字符(包括字母、数字、标点符号、控制字符及其他符号)分配(或指定)数值
‘a’ 97
‘A’ 65
‘o’ 48
int a=5;char ch='a';System.out.println(a+ch); //结果为102
(2)字符串参与加法运算:实质是字符串的拼接,结果一定是字符串,但
System.out.println(10+20+"hello"); //结果:30hello System.out.println("hello"+10+20); //结果:hello1020
拼接也要考虑从左往右的运算,第一个先做了整数的加法,后续又继续了字符串的拼接。第二个先做了字符串的拼接hello10,再继续也是字符串拼接hello1020。
自增自减运算符
++,–
作用:就是自己+1或是-1
怎么用:单独使用一个变量的时候放在变量前或放在变量后面都是可以。
public static void main(String[] args) {int a=10;int b=10;//a++;//b--;++a;--b;System.out.println("a="+a);//a=11System.out.println("b="+b);//b=9 }
但是参与其他操作时,
++在变量后面,先把变量a值赋给b后再自身加1;
++在变量前面,先把变量a自身加1,再赋值给b.
int a=10;int b=a++;System.out.println("b="+b);//结果:b=10
int a=10;int b=++a;System.out.println("b="+b);//结果:b=11
扩展赋值运算符:
基本的赋值运算符=
扩展的赋值运算符+=、-= :把运算符左边的数据和右边的数据进行运算,然后把结果赋值给左边
int a=10;a += 20;//左边值a上一步已被赋值为10System.out.println("a="+a);//结果为30
区别:a+=20 与 a=a+20
a+=20等同于a=(a的数据类型)(a+20),扩展的赋值运算符隐含了强制类型转换。
short a=1;a+=4;//a+4 short类型a参与运算首先会提升为int类型,结果也为int类型,但是扩展运算符会将其强制转换为short类型。结果不会报错。System.out.println(a);
short a=1;a=a+4;//a+4 short类型a参与运算首先会提升为int类型,结果也为int类型,但是a是个short类型,把int类型的值赋给short类型就会报错。System.out.println(a);
关系运算符
==,!=,>=,<=
关系运算符操作完成的结果是布尔值。
逻辑运算符
用于连接关系表达式,JAVA中不能写成x<3<6,要写成x>3&&x<6.
&&:逻辑与,有false则false
||:逻辑或,有true则true
!:逻辑非,true则false,false则true
用法:
int a=1;int b=2;int c=3;System.out.println((a>b)&&(a>c));//false&&false 结果:falseSystem.out.println((a<b)||(a>c));//true||false 结果:trueSystem.out.println(!(a<b)); //结果为false
三元运算符
关系表达式?表达式1:表达式2;
执行流程:A:计算关系表达式的值,看结果是true还是false.B:如果是true,表达式1就是结果;如果是false,表达式2就是结果。
int a = 1;int b = 2;int c = (a>b)?a:b;System.out.println("c:"+c);//因为a>b为false,所以结果为c:2
三元运算符练习题:比较两个整数是否相同
int a = 2;int b = 2;boolean c = (a==b)?true:false;System.out.println("c:"+c);//结果为true
Scanner键盘录入学习
步骤:
1.导包:import java.util.Scanner;
2.创在这里插入代码片
建键盘录入对象: Scanner sc=new Scanner(System.in)
3.获取数据: int i =sc.nextInt();
package homework2;
import java.util.Scanner;
public class demo1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入第一个整数");int b = sc.nextInt();System.out.println("请输入第二个整数");int a = sc.nextInt();int sum=a+b;System.out.println(sum);}
}
流程控制语句
顺序结构
选择结构(if语句)
if语句格式1
if(关系表达式){
语句体;
}
先执行关系表达式的运算,看是true还是false;如果是true就执行语句体,如果是false就不执行语句体。
if语句格式2
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行流程:
首先判断关系表达式看结果是 true还是false,true执行语句体1,false执行语句体2.
import java.util.Scanner;public class demo1 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("请输入a");int a=sc.nextInt();if(a%2==0){System.out.println("a是偶数");}else{System.out.println("a是奇数");}}
}
if语句格式3
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}
else if(关系表达式3){
语句体3}
……
else{
语句体n+1}
import java.sql.SQLOutput;
import java.util.Scanner;public class demo1 {public static void main(String[] args) {System.out.println("请输入数值:");Scanner sc=new Scanner(System.in);int a=sc.nextInt();int b=0;if(a<100 && a>0){b=a;System.out.println("您输入的数绝对值是它本身哦:");}else if(a==0){b=0;System.out.println("您输入的数既不是整数也不是负数,但绝对值也是它本身尼");}else if(a<0 && a>-100){b=-a;System.out.println("您输入的数绝对值是它的相反数");}else{System.out.println("抱歉呢,您输入的数不在我计算范围之内,出错撩");}System.out.println("b="+b);}
}
if语句比较两个最大值
import java.util.Scanner;public class demo2 {public static void main(String[] args){Scanner sc=new Scanner(System.in) ;System.out.println("请输入第一个整数");int a=sc.nextInt();System.out.println("请输入第二个整数");int b=sc.nextInt();int max;if(a>b){max=a;}else{max=b;}System.out.println("max="+max);}
}
测试数据是否严谨,应考虑到以下情况:
1.正确数据
2.边界数据
3.错误数据
if语句成绩对应级别
import java.util.Scanner;public class demo2 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("请输入你的成绩");int i=sc.nextInt();if(i>100||i<0){System.out.println("输入有误");}else if(i>=80 && i<=100){System.out.println("你很优秀欸");}else if(i<80 && i>=60){System.out.println("很不错嘛");}else if(i<60){System.out.println("还需努力哦同学");}}
}
选择结构(switch语句)
句式:
表达式可以是byte,short,int,char,DK5以后可以是枚举,JDK7以后可以是字符串。
case后的值是用来与表达式的值进行匹配的。
break表示终端。
default是当所有的值和表达式不匹配时就执行default对应的内容。
步骤:
计算表达式的值,再那这个值与case后面的值进行比对,有匹配就执行对应的语句,遇break中断。若所有的case均不匹配则就执行default语句。
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
……
default:
语句体n+1;
break;
}
import java.util.Scanner;public class demo2 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("请输入一个整数1-12");int month=sc.nextInt();switch(month){case 1:System.out.println("1月");break;case 2:System.out.println("2月");break;case 3:System.out.println("3月");break;case 4:System.out.println("4月");break;case 5:System.out.println("5月");break;case 6:System.out.println("6月");break;case 7:System.out.println("7月");break;case 8:System.out.println("8月");break;case 9:System.out.println("9月");break;case 10:System.out.println("10月");break;case 11:System.out.println("11月");break;case 12:System.out.println("12月");break;default:System.out.println("你输入的数据有误");break;}}
}
作业
训练案例1
键盘录入一个int类型的数据,使用三元运算符判断这个数是奇数还是偶数
import java.util.Scanner;
public class zuoye1 {public static void main(String[] args){Scanner sc=new Scanner(System.in);System.out.println("请输入数值:");int i=sc.nextInt();String c= ((i%2)==0)?"偶数":"奇数";System.out.println("数值是"+c);}
}
训练案例2
定义一个int类型的变量,初始化值为123,求这个数的个位,十位,百位分别是多少,输出结果:123的个位是3,十位是2,百位是1
import java.util.Scanner;
public class zuoye2 {public static void main(String[] args) {int i = 123;int b=0;Scanner sc = new Scanner(System.in);System.out.println("你想要123的哪个位数呢,请输入个位数,十位数或百位数,有惊喜哦");String a = sc.nextLine();switch(a){case "个位数":b=i%10;break;case "十位数":b=(i/10)%10;break;case "百位数":b=i/100;break;default:System.out.println("输入有误");}System.out.println(a+b);}
}
训练案例3
键盘录入一个长方形的长和宽(长和宽为int类型),计算长方形的面积和周长
import java.util.Scanner;public class 作业3 {public static void main(String[] args){Scanner sc=new Scanner(System.in);System.out.println("请输入长方形的长:");int L=sc.nextInt();System.out.println("请输入长方形的宽:");int W=sc.nextInt();System.out.println("___________________________");int S=L*W;System.out.println("长方形的面积:"+S);System.out.println("___________________________");int C=2*(L+W);System.out.println("长方形的面积:"+C);}
}
拓展训练案例1
小明左、右手中分别拿两张纸牌(比如:黑桃10和红桃8,数字10和8可通过键盘录入),要求编写代码交换小明手中的牌.
import java.util.Scanner;public class zuoye4 {public static void main(String[] args) {int left=0;int right=0;int temp=0;Scanner sc=new Scanner(System.in);System.out.println("请输入小明左手的牌:");left=sc.nextInt();System.out.println("请输入小明右手的牌:");right=sc.nextInt();System.out.println("互换前小明手中的纸牌");System.out.println("左手的纸牌:"+left);System.out.println("右手的纸牌:"+right);System.out.println("_____________________________");System.out.println("互换后小明手中的纸牌");temp=left;left=right;right=temp;System.out.println("左手的纸牌:"+left);System.out.println("右手的纸牌:"+right);}
}
拓展训练案例2
1.键盘录入学员张浩的3门课程(Java、SQL、Web)的成绩
2.编写程序实现:
(1)Java课程和SQL课程的分数值差
(2)3门课程的平均分
import java.util.Scanner;public class zuoye5 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入java成绩:");int java = sc.nextInt();System.out.println("请输入SQL成绩:");int SQL = sc.nextInt();System.out.println("请输入Web成绩;");int Web = sc.nextInt();System.out.println("java SQL Web");System.out.println(java+" "+SQL+" "+Web);int sub=java-SQL;double ave=(java+SQL+Web)/3;System.out.println("Java和SQL的成绩差:"+sub);System.out.println("三门课的平均分是:"+ave);}
}/*结果请输入java成绩:100请输入SQL成绩:60请输入Web成绩;80java SQL Web100 60 80Java和SQL的成绩差:40三门课的平均分是:80.0*/
拓展训练案例3
商场推出幸运抽奖活动,抽奖规则如下:
(1)键盘录入四位数字(1000-9999的数字),作为顾客的会员卡号
(2)该会员卡号(键盘录入的四位数字)各位数字之和大于20,则为幸运客户
import java.util.Scanner;
public class zuoye6 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("请输入4位会员卡号:");int cardID=sc.nextInt();int a=cardID/1000;int b=(cardID/100)%10;int c=(cardID/10)%10;int d=(cardID%10);int sum=a+b+c+d;String y=(sum>20)?"是幸运客户":"不是幸运客户";System.out.println("会员卡号"+cardID+"各位之和:"+sum);System.out.println("会员卡号"+cardID+y);}
}
拓展训练案例4
根据工龄(整数)给员工涨工资(整数),工龄和基本工资通过键盘录入如果用户输入的工龄为10,基本工资为3000,程序运行后打印格式"您目前工作了10年,基本工资为 3000元, 应涨工资 5000元,涨后工资 8000元".
import java.util.Scanner;public class zuoye7 {public static void main(String[] args) {int y=0;int a=0;Scanner sc=new Scanner(System.in);System.out.println("请输入工龄");int workAge=sc.nextInt();System.out.println("请输入基本工资");int salary=sc.nextInt();if (workAge>=0 && workAge<1){a=200;}else if(workAge>=1 && workAge<3){a=500;}else if(workAge>=3 && workAge<5){a=1000;}else if(workAge>=5 && workAge<10){a=2500;}else if(workAge>=10 && workAge<15){a=5000;}y=salary+a;System.out.println("您目前工作了"+workAge+"年,基本工资为"+salary+"元,应涨工资"+a+"元,涨后工资"+y);}
}
/*结果:
请输入工龄
10
请输入基本工资
3000
您目前工作了10年,基本工资为3000元,应涨工资5000元,涨后工资8000*/
拓展训练案例5
模拟计算器功能,对键盘录入的两个int类型的数据进行加、减、乘、除的运算,并打印运算结果
import java.util.Scanner;public class zuoye8 {public static void main(String[] args) {int y = 0;Scanner sc = new Scanner(System.in);System.out.println("请输入第一个数据:");int a = sc.nextInt();System.out.println("请输入第二个数据:");int b = sc.nextInt();System.out.println("请输入您要进行的运算(0:表示加法运算,1:表示减法运算,2:表示乘法运算,3:表示除法运算):");int c = sc.nextInt();switch (c) {case 0:y = a + b;System.out.println(a + "+" + b + "=" + y);break;case 1:y = a - b;System.out.println(a + "-" + b + "=" + y);break;case 2:y = a * b;System.out.println(a + "*" + b + "=" + y);break;case 3:y = a / b;System.out.println(a + "/" + b + "=" + y);break;}}
}
拓展训练案例6
键盘录入月份,输出对应的季节
import java.util.Scanner;public class zuoye9 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("请输入一个整数1-12");int month=sc.nextInt();switch(month){case 1:System.out.println("冬季");break;case 2:System.out.println("冬季");break;case 3:System.out.println("春季");break;case 4:System.out.println("春季");break;case 5:System.out.println("春季");break;case 6:System.out.println("夏季");break;case 7:System.out.println("夏季");break;case 8:System.out.println("8夏季");break;case 9:System.out.println("秋季");break;case 10:System.out.println("秋季");break;case 11:System.out.println("秋季");break;case 12:System.out.println("秋季");break;default:System.out.println("你输入的数据有误");break;}}
}
一次就让你学懂java运算符相关推荐
- 三张图学懂移位运算符——有符号移位?无符号移位?
本专栏由十年Java开发经验专家编写,本专栏定位于Java基础知识,既适合新手入门又适合老鸟巩固基础知识.一共99节课,每节课只需几毛钱. 作者简介:笔名seaboat,擅长工程算法.人工智能算法.自 ...
- java教程解析_【B0666】[java视频教程]全方位深入解析最新版SpringBoot源码新手都能学懂视频教程...
Java视频教程名称:全方位深入解析最新版SpringBoot源码新手都能学懂视频教程 java自学网[javazx.com] SpringBoot视频教程 it教程 Java自学网收集整 ...
- 多高学历的人能学懂java_初中学历学习java能行吗?
初中学历报培训班?你是不是被洗脑了?是你就眨眨眼 初中学历一样可以学习Java,没有哪一条规定学历低就不能学习Java 能不能找到工作取决于你的技术,还取决于你的运气,假如你头简历碰到一家不要求学历的 ...
- 一个例子学懂搜索引擎(lucene)
http://www.vifir.com/html/20080827/1703937.html 一个例子学懂搜索引擎(lucene) 来源:javaeye 作者: phz50 2008-08-27 1 ...
- 搞懂 Java HashMap 源码
HashMap 源码分析 前几篇分析了 ArrayList , LinkedList ,Vector ,Stack List 集合的源码,Java 容器除了包含 List 集合外还包含着 Set 和 ...
- java 内部类定于_搞懂 JAVA 内部类
前些天写了一篇关于 2018 年奋斗计划的文章,其实做 Android 开发也有一段时间了,文章中所写的内容,也都是在日常开发中遇到各种问题后总结下来需要巩固的基础或者进阶知识.那么本文就从内部类开刀 ...
- Java是什么?学了Java我们能干什么?
Java是什么?学了Java我们能干什么? 笔者现在大概简单介绍下Java前世今生. Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的 ...
- java自学要学多久(java自学要学多久)
自学java,学多久可以自己找到工作? 那得看情况!如果你不是在校大学生,并且还没有接触过编程,建议你先自学一个星期C语言,初步编程入门,再去培训班进行培训,培训一期大概半年左右,然后在一边工作一边学 ...
- 你为什么学不好Java?系统学习Java的七大因素
随着传统行业的没落,越来越多的人准备进军互联网行业,如何学好Java成功就业的问题在网上越来越热,在知乎上面看了好多介绍学习方法的文章和一些优秀答主的高赞回答.多数创作都是围绕着学习什么技术比较专业性 ...
最新文章
- 反思Code Review的注意点与目的
- CSDN签约慧安金科,共建全方位智能风控体系
- java web-inf_对JavaWeb项目中WEB-INF目录的理解
- 必做作业3:原型化系统
- HDFS常用命令/API+上传下载过程(三)
- 在ASP中常见的错误80004005信息和解决办法
- 《JavaScript构建Web和ArcGIS Server应用实战》——1.5 总结
- springboot指定属性返回_SpringBoot中属性赋值操作的实现
- ubuntu更新源 apt-get install Unable to locate package
- oracle技术之浅述当前模式读与一致性读
- 流程图伪代码计算机语言,论文中伪代码怎么写
- win10修改DVD驱动器盘符(磁盘管理无DVD驱动器)
- 怎么判断一篇微信公众号文章阅读量是不是刷上来的?
- 如何往linux虚拟机传文件,Windows中虚拟机Linux传输文件的两个简单的方法
- 关于Win10的powerdesigner16的缩放问题,字体和图标
- #VICE对话摄影师# 旅居车是一种生活态度
- 《生活,是很好玩的》读书日记
- ant Design 中使用 :globa
- LIBSVM实验-在matlab中使用heart_scale数据集
- JQ----移动端h5页面通过地址调起通讯录以及高德地图、百度地图定位导航
热门文章
- Unicode字符类
- 计算机高中期末总结作文,期末考试总结作文(精选5篇)
- Google Filament 源码学习(四):Material System (三) - 材质格式 (mat)
- 网络——Windows下的网络编程入门
- 【更新】MindFusion.WinForms Pack v2019.R1发布,改进Visio2013Exporter
- C++using用法
- java泡妞代码_java泡妞小程序
- private和protected的区别
- cmd 连接 远程数据库
- 在网页中搜索指定内容和以PDF格式保存网页