JavaSE回顾及巩固的自学之路(三)——————所有语言的都存在的基本运算
在上一篇的博客中,我回顾到Java中的关键字,标识符等知识点,而今天这篇博文将回顾Java的,哦,不,不止Java,据本人了解,几乎在所有的语言中的基础阶段,都会存在这些运算,只是语法不一样而已。
今天回顾的先做一个总结:1.运算符;2.实现键盘录入;3.流程控制语句;4.控制跳转语句。
运算符:千万不要被字面所迷惑,千万不要认为运算符就是用于数学运算的工具。数据,不仅是数学角度的运算数据。
(1).算术运算符:+,/,-,*,%,++,--;
+:有三种用法:
1.数学上的加法;
2.数学上的正号;
3.这是最关键上的一点:字符串连接符;在这个用法上面,容易出现一个计算障眼法:
String str = "hello" + 'a' + 2;
String str2 = 2 + 'a' + "hello";
在上方的两个运算中,是存在加法的两种用法,这就是待会要讲到的流程控制语句;
要记住一个关键点就是ASCII码表:a的十进制值是97;然后记住,默认运算从左到右;分析第一个:hello和a先运算+;字符串和一个char类型相加,那么就是字符串连接符的功能,然后helloa和2相加,所以str的值就是helloa2;
分析第二个:2和a运算:int类型和char类型运算,实际就是运算其二者的十进制值,所以接下来就是99和hello运算,+表现字符串连接符的功能,所以str2的值是99hello。
-:减法就是用于数学角度的运算操作。
/和%:二者都是运用于数学角度的除法:而得出的结果就是:/是商,%是余数。
++和--:自增,自减一个单位;但是在使用的时候就是有区别;如果单独操作那么就是自增或者自减,运算符放在前面或者后面都是一样是运算效果,例:int a = 100; a++; ++a; //得出的结果第一个a值变为101,第二个运算:a值变为102;
但是 用于操作运算中,就是运算符的放前放后就是不一样,例:运算符放在操作前面使用,则是先自增(自减),在参与操作。int a = 10; int b = ++a; 这样的b的值就是11,a的值也是11。那么运算符放在操作后面使用,则是先参与操作,在自增(自减)操作。int a1 = 10; int b1 = a1++; 那么b1的值就是先得到a1的值10,那么a1在进行自增操作,所以a1的值最后变为11。
(2).赋值运算符: =,+=,*=,/=,%= 等;
其中“=”号就是最基本的赋值运算符,例:int i = 10; 其运行的操作就是把10这个值赋值给int类型的变量i。
而其余的则为扩展的赋值运算符:而其中就有一个特殊的特点,就是蕴含了强制转换。例:short s = 1; s = s + 1; 其中我们知道short为单精度的数据类型,而这样的代码块是报错的,因为s为short类型,而s = 1,1 + 1为默认int类型,所以:short s = 1; s = (short) s + 1;这样的运算符才是正确的。所以:short s = 1; s += 1; 这样的代码块才不会,报错,因为s = (short) s + 1; === s += 1;
(3).比较运算符:==,!=,>,<,>=,<=等,而比较运算符的运算结果始终都是boolean类型;
(4).逻辑运算符:&,|,^,!,&&,|| 等,在其中,逻辑运算符是用于为boolean类型搭桥的公式,所以,在逻辑运算符的左右都为boolean类型;
&:在运算符的左右中:如果有false则总体为false;
|:在运算符的左右中:如果有true则总体为true;
^:在运算符的左右中:如果相同总体则为false,不同总体则为true;
!:运算符的右边如果为true则为false,如果为false,则总体为true;
&&:在运算符的左右中:如果左边为false,则右边不执行,执行之后的总体结果就是和&运算判断方法一致,而这种效果就称为短路效果;
||: 在运算符的左右中:如果左边为true,则右边不执行,执行之后的总体结果就是和 | 运算结果一致,
(5).位运算:就是^的一种特殊的功能;用于数值上的运算;数值a和数值b异或两次,那么该运算的值就是数值a的值,不变。
所以,其中就可以运用到两个数据的交换,例: int a = 10; int b = 20; b = a ^ b ; a= a ^ b ; b = a ^ b ;
2.在数据运算中,我们总是只有运用固定的字符,来进行数据的操作,如果想修改数据,只有重新运行一遍代码,这样,大大的加大了程序的调试难度,那么我们就要实现人机交互,实现键盘录入的功能:这样大大的提高了代码的灵活性。这样我们就是需要运用到后面内容的匿名类功能:那么键盘录入的格式:
(1).导包: import java.utli,Scanner;
(2).创建Scanner对象:Scanner scanner = new Scanner(System.in);
(3).调用该对象,获取键盘录入数据:int i = scanner.nextInt();
3.流程控制语句:总共分为三种:1.顺序结构:从上往下,依次执行; 2.选择结构:按照不同的选择,执行不同的代码块; 3.循环结构:按照循环的条件,执行需要循环的代码块不断执行。
4.if语句:一共有三种格式;其中要注意的是:比较的一个表达式,结果永远是boolean类型;if语句中控制执行的语句如果是一条语句的话,那么{}是可以省略的;如果其中一个执行,那么接下来的条件就不执行。
5.swith语句:格式就不讲了,太low。在switch语句中,就是有几个面试题经常会碰到的题:在switch的表达式中通常是一个数据类型:byte,short,int,char,那么在jdk5之后可以是枚举,在jdk7之后可以是字符串String,但是不能是long类型。还有一个问题就是如果省略了break,那么就会出现case穿透现象。
6.循环语句:for循环,while循环,do...while循环
(1).for循环:有几个注意事项,在判断条件语句一定是boolean类型。在循环体语句中,如果只有一条语句,那么就可以省略大括号。
(2).while循环:对于在while循环和for循环中的使用上的区别,可以这么讲:for适合于一个范围上的判断
while循环呢?适合循环的次数不明确的循环操作。
(3).do...while循环:它和while循环的区别就是它无论循环的条件成立不成立,循环体语句都会执行一次,而for和while就需要先判断条件成立。
在循环中,有些特殊情况需要注意,就是一个死循环现象,对于死循环现象,不要在字面上理解他为一个bug,一个错误的代码,其实在程序中,死循环是一种需要存在的代码,格式比如:for( ; ; ) 和while(true){},就是就是循环条件一定成立,一定是true。那么怎么停止程序呢?这就是待会要讲的控制跳转语句的支持了。在for循环还有一个增强for的应用,在后期的集合中会提到应用
7.控制跳转语句:1.break,2.continue,3.return
对于这三者的区别,需要很强的逻辑能力才能区分,理解。
(1).break:中断,用于跳出单层循环,跳出多层循环。
(2).continue:继续,用于跳出单层循环一次,然后下一次继续循环
(3).return:返回,用于结束方法,在遇到return,该方法,程序就会结束。
JavaSE回顾及巩固的自学之路(三)——————所有语言的都存在的基本运算的更多相关文章
- JavaSE回顾及巩固的自学之路(四)——————方法和数组,面向对象
今天是2018.03.31,emmmmmm.好像距离上一次写Javase回顾总结已经好久好久过去,差一点就以为要停更了,哈哈哈. 其实呢,最近是真的好忙(额,这段时间觉得自己一直在学习) ...
- JavaSE回顾及巩固的自学之路(二)——————进入JavaSE
好的.今天接着上一篇文章对JavaSE的历程初步介绍,开始对JavaSE的技术性知识进行探讨. 首先,选择编程,成为一名程序员,应该会了解一些计算机的相关基础知识,毕竟,以后就是和计算机打交道了嘛.s ...
- JavaSE回顾及巩固的自学之路(一)——————前言
长长的呼出一口气,终于到了末端了,JavaSE,Java入门的基础,历经一个多月,终于细细的学了一遍,大部分的时间都是熬夜到半夜两点钟.本来是一个月的课程,足足让我给学了将近两个月,为什么呢?第一,还 ...
- 【转】JAVA自学之路
JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...
- 【转】Java自学之路——by马士兵
作者:马士兵老师 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟 ...
- Java自学之路(新手一定要看)
Java自学之路(新手一定要看) 转自尚学堂 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游 ...
- [感悟]马士兵Java自学之路——(精华版)
JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...
- 马士兵_JAVA自学之路(为那些目标模糊的码农们)
转载自:http://blog.csdn.net/anlidengshiwei/article/details/42264301 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. ...
- 我的web前端自学之路-心得篇:我为什么要学习web前端?
时光如流水,转眼间,自己已经是大三的学长了,看着一个个学弟学妹,心中有种莫名的感觉,很怀念大学的前两年时光,但也很憧憬着自己的未来,自己将要去经历很多从未经历的事.我是我们学校信科院的一名学生,在编程 ...
随机推荐
- HR_Jumping on the Clouds
1.没有考虑i+2越界的问题 2.没有考虑结尾三个零导致 -5 3.没有考虑len(c)<2 导致 -5 #!/bin/python3 import math import os import ...
- [THUWC2017]在美妙的数学王国中畅游
[THUWC2017]在美妙的数学王国中畅游 e和sin信息不能直接合并 泰勒展开,大于21次太小,认为是0,保留前21次多项式即可 然后就把e,sin ,kx+b都变成多项式了,pushup合并 上 ...
- hihocoder1364 奖券兑换
题目链接 思路 乍一看这是一个01背包的裸题.但是数据范围\(10^5\)是无法承受的. 但是发现\(p_i\)和\(w_i\)只有10,也就是说最多只有100种物品.所以可以对他们进行分组.然后用二 ...
- 使用ZXing.Net生成与识别二维码(QR Code)
Google ZXing是目前一个常用的基于Java实现的多种格式的1D/2D条码图像处理库,出于其开源的特性其现在已有多平台版本.比如今天要用到的ZXing.Net就是针对微软.Net平台的版本.使 ...
- 都是分号惹的祸 ORA-00911
使用JMeter连接oracle数据库,访问JDBC 请求,执行结果提示:ORA-00911: ??Ч??? 意思为无效的字符错误 说明了在执行的的SQL语句中出现了无效字符,所以在AQL语句无法通过 ...
- 做IT项目管理也需要具备产品思维
不知道大家有没有听过大胡子姜志辉老师的公开课,我自己认为讲的还是不错的. 因为本身大胡子老师就是一个IT行业的人士,自己还经历了程序员.架构师.项目经理.敏捷教练.产品经理.公司持有人等多个角色.所以 ...
- 对C# .Net4.5异步机制测试(二)——加深印象
public static void Main() { Console.WriteLine(Thread.CurrentThread.ManagedThreadId); In(); Console.W ...
- (基础) 平方和与立方和 hdu2007
平方和与立方和 链接:http://acm.hdu.edu.cn/showproblem.php?pid=2007 Time Limit: 2000/1000 MS (Java/Others) ...
- 关于python的315道题
python基础篇 为什么学习Python? 通过什么途径学习的Python? Python和Java.PHP.C.C#.C++等其他语言的对比? 简述解释型和编译型编程语言? Python解释器种类 ...
- kettle连接mysql数据库并进行数据分析
1.数据库链接驱动 如果没有安装对应的数据库链接驱动,在数据库链接的过程中,可能会报某个数据库连接找不到的异常,因此需要下载对应驱动后(安装步骤可以参见“怎么在官网上下载java连接mysql的驱动j ...