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前端?
时光如流水,转眼间,自己已经是大三的学长了,看着一个个学弟学妹,心中有种莫名的感觉,很怀念大学的前两年时光,但也很憧憬着自己的未来,自己将要去经历很多从未经历的事.我是我们学校信科院的一名学生,在编程 ...
随机推荐
- 「JLOI2015」骗我呢 解题报告?
「JLOI2015」骗我呢 这什么神仙题 \[\color{purple}{Link}\] 可以学到的东西 对越过直线的东西翻折进行容斥 之类的..吧? Code: #include <cstd ...
- selenium 代理设置
设置Firefox代理: from selenium import webdriver from selenium.webdriver.common.proxy import Proxy, Proxy ...
- JAVA多线程之当一个线程在执行死循环时会影响另外一个线程吗?
一,问题描述 假设有两个线程在并发运行,一个线程执行的代码中含有一个死循环如:while(true)....当该线程在执行while(true)中代码时,另一个线程会有机会执行吗? 二,示例代码(代码 ...
- Android 架构 -- Room
gradle依赖: // add for room implementation "android.arch.persistence.room:runtime:1.1.1" // ...
- git init github
Command line instructions 执行这些命令是在windows 右菜单里面的git bash运行. Git global setup git config --global use ...
- A1014. Waiting in Line
Suppose a bank has N windows open for service. There is a yellow line in front of the windows which ...
- ASP.NET MVC什么时候使用异步Action
在没有使用异步Action之前,在Action内,比如有如下的写法: public ActionResult Index() CustomerHelper cHelper = new Customer ...
- bouncing-balls
效果如下: 代码目录如下: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charse ...
- Could not install the app on the device, read the error above for details. Make sure you have an Android emulator running or a device connected and have set up your Android development environment:
Administrator@DESKTOP-EHCTIOR MINGW64 /d/react-native-eyepetizer (master) $ react-native run-android ...
- bash 4
1)获取字符串长度: str="jwwjww" #str=‘jwwjww’//单引号双引号都一样 echo ${#str} 结果:6 2)提取子字符串 echo ${#str:1: ...