运算符

数据类型转换:

小数据类型-------->大数据类型(自动类型转换)

大数据类型--------->小数据类型(强制类型转换)

强制类型转换的格式:

小数据类型  变量名 = (小数据类型)大数据类型

注意的细节:

1.凡是byte、short、char数据类型数据在运算的时候都会自动转换成int类型的数据再运算。

2.两个不同数据类型的数据在运算的时候,结果取决于大的数据类型。

  1. class Demo2 {
  2. public static void main(String[] args) {
  3. /*
  4. byte b= 11; // 一个字节
  5. short s = b; // 把b变量存储的值赋予给s变量。2字节
  6. int i = s; // i是4字节
  7. long l = i; // l 是8个字节。
  8. System.out.println(l);
  9. int i = 128; //4个字节
  10. byte b =(byte) i; // 1个字节
  11. System.out.println(b); // -128
  12. //如果是负数,那么最高位肯定是1, 正数的二进制位的最高位是0。
  13. System.out.println(Integer.toBinaryString(-7)); //sun给我们提供一个功能 Integer.tobinaryString() 查看一个数据的二进制数据形式的。
  14. // 11111001(补码)
  15. 凡是byte、short 、 char数据类型数据在运算的时候都会自动转换成int类型的数据再运算。
  16. byte b1 =1;
  17. byte b2 = 2;
  18. byte b3 = (byte)(b1+b2);
  19. System.out.println(b3); //3
  20. System.out.println('a'+1); //98
  21. 两个不同数据类型的数据在运算的时候,结果取决于大的数据类型
  22. int i =10;
  23. long l = 20;
  24. i = (int)(i+l);
  25. System.out.println(i);
  26. */
  27. int i = 10; //
  28. byte b = i; // 一个整数没有加上任何标识的时候,默认是int类型的数据。
  29. //10 是一个常量, 编译器在编译的时候就能够确认常量的值了,byte b = 10,在编译到的时候
  30. //java编译器就会检查到10并没有超出byte的表示范围,所以允许赋值。
  31. //java编译器在编译 的时候并不能确认变量所存储的值,变量存储的值是在运行的时候才在内存中分配空间 的。
  32. System.out.println(b);
  33. }
  34. }

算术运算符:

+ (正数、加法、连接符)连接符的作用:让任何的数据都可以与字符串进行拼接。如果+号用于字符串的时候,那么+号就是一个连接符,并不是做加法功能了。

连接符要注意:任何类型的数据与字符串使用连接符连接,那么结果都是字符串类型的数据。

++(自增): 自增就是相当于操作数+1.

前自增:++位于操作数的前面。比如:++a;

前自增:先自增,后使用。

后自增: 先使用,后自增。

--(自减):操作数-1.

前自减: --位于操作数的前面。--操作数

前自减:先自减,后使用。

后自减:--位于操作数的后面。 操作数--;

后自减: 先使用,后自减。

赋值运算符:

= (赋值运算符)

+=

-=

*=

/=

%=

比较运算符:比较运算符的结果都是返回一个布尔值的。

!= (不等于)

> (大于)

< (小于)

>= (大于等于)

<= (小于等于)

==用于比较两个基本数据类型数据的时候,比较的是两个变量所存储的值是否一致.

==用于比较两个引用类型变量的数据时候,比较的是两个 引用类型变量所记录的内存地址是否一致.

逻辑运算符:逻辑运算符的作用是用于连接布尔表达式的。

amp; (与,并且)

规律: 只有左右变量同时为true,那么结果才是true,否则就为false。

| (或,或者)

规律:只要两边的布尔表达式有一边为true,那么结果就为true,只有两边同时为false 的时候,结果才是false.

^ (异或)

规律:只要两边的布尔表达式 结果不一致,那么结果就为true,如果左右两边 的布尔表达式一致,那么就为false.

! (非)

=================

&& (短路与\双与)

短路与和单与符号的相同与不同点:

相同点:短路与和单与运算的结果是一样的。

不同点:使用短路与的时候,如果左边的布尔表达式为false,则不会在运算右边的布尔表达式,从而提高了效率。使用单与的时候,即使发现左边的布尔表达式为false,还是会运算右边的布尔表达式的。只有左边的布尔表达式为false时,双与的效率才要高于单与的.

|| (短路或\双或)

短路或与单或的相同点与不同点:

相同点:运算的结果是一致的。

不同点:使用短路或的时候,当发现左边的布尔表达式为true时,则不会运算右边的布尔表达式。使用单或的时候 发现左边的布尔表达式为true,还是会运算右边布尔表达式。

位运算符:位运算符就是直接操作二进制位的。

amp;(与)

|(或)

^(异或)

规律:如果操作数A连续异或同一个操作数两次,那么结果还是操作数A。

位运算符可能会出现的笔试题目:

  1. 交换两个变量的值,不准出现第三方变量。
  2. 取出一个二进制数据的指定位数。要求读取该二进制数据的低4位

    00000000-00000000-00010100-01001101

    amp; 00000000-00000000-00000000-00001111

    --------------------------------------------------------------

    00000000-00000000-00000000-00001101

移位运算符:

<<(左移)

规律:一个操作数进行左移运算的时候,结果就是等于操作数乘以2的n次方,n就是左移的位数.

3<<1 = 3*2(1) = 6;

3<<2 = 3*2(2) = 12

3<<3 = 3*2(3) = 24

>>(右移)

规律:一个操作数在做右移运算的时候,实际上就是等于该操作数除以2的n次方,n就是移的位数。

3>>1 = 3 / 2(1) = 1

3>>2 = 3 / 2(2) = 0

>>>(无符号右移) :

无符号右移与右移的区别:进行右移运算的时候,如果操作数是一个正数,那么左边的空缺位使用0补,如果操作数是一个负数,那么左边的空缺位使用1补。而使用无符号右移的时候,不管是正数还是负数都统一使用0补。

三元运算符(三目运算符)

格式:

布尔表达式?值1:值2;

三元运算符要注意的细节:

使用三元运算符的时候,一定要使用该表达式返回的结果,或者是定义一个变量接收该表达式返回的结果。

控制流程语句

控制流程语句之(if)判断语句

格式1:适用于一种情况使用。

  1. if(判断的条件){
  2. //符合条件执行的代码;
  3. }

格式2:适用于两种情况下去使用的。

  1. if(判断条件){
  2. //符合条件执行的代码
  3. }else{
  4. //不符合条件执行的代码;
  5. }

格式二作用相当于三元运算符:布尔表达式?值1:值2;

格式三:适用于多种情况下去使用的。

  1. if(判断条件1){
  2. //符合条件1执行的代码
  3. }else if(判断条件2){
  4. //符合条件2执行的代码
  5. }else if(判断条件3){
  6. //符合条件3执行的代码
  7. }......else{
  8. //都不符合上述 的条件执行的代码
  9. }

if语句要注意的细节:

  1. 如果符合条件后只有一个语句需要执行,那么可以省略大括号。但是建议不要省略,因为结构不清晰。
  2. if语句的判断条件后不能添加分号,否则会影响到执行的效果的。

控制流程语句之----switch选择判断语句

switch语句的格式:

  1. switch(你的选择){
  2. case 1
  3. 符合值1执行的代码
  4. break;
  5. case 2
  6. 符合值 2执行的代码
  7. break;
  8. case 3
  9. 符合值 3执行的代码
  10. break;
  11. case 4
  12. 符合值 4执行的代码
  13. break;
  14. ......
  15. default:
  16. 你的选择都符合上述的选项时执行的代码;
  17. break;
  18. }

switch语句要注意的事项:

  1. switch语句使用的变量只能是byte、 char、 short、int、 String数据类型,String数据类型是从jdk7.0的时候开始支持的。
  2. case后面跟 的数据必须是一个常量。
  3. switch的停止条件:

    switch语句一旦匹配上了其中的一个case语句,那么就会执行对应的case中的语句代码,执行完毕之后如果没有遇到break关键字或者是结束switch语句的大括号,那么switch语句不会再判断,按照代码的顺序从上往下执行所有的代码。直到遇到break或者是结束siwitch语句的大括号为止。
  1. 在switch语句中不管代码的顺序如何,永远都是会先判断case语句,然后没有符合的情况下才会执行default语句。

if--else if---else if 语句与switch语句非常的相似:

switch语句的优点:switch语句的结构清晰。switch缺点:如果 判断的条件是一个区间范围的,使用switch操作就非常的麻烦了。

  1. class Demo2{
  2. public static void main(String[] args) {
  3. int option = 1; //定义一个变量存储你的选择
  4. switch(option){
  5. case 1:
  6. System.out.println("java");
  7. case 2:
  8. System.out.println("C#");
  9. case 3:
  10. System.out.println("javascript");
  11. case 4:
  12. System.out.println("android");
  13. default:
  14. System.out.println("你的选择有误");
  15. }
  16. /*
  17. String str = "world";
  18. switch(str){
  19. case "hello":
  20. System.out.println("hello");
  21. break;
  22. case "world":
  23. System.out.println("world");
  24. break;
  25. }
  26. */
  27. }
  28. }

循环语句----while循环语句

while循环 语句的格式:

  1. while(循环的条件){
  2. //循环语句;
  3. }

while循环语句要注意的事项:

  1. while循环语句一般是通过一个变量控制其循环的次数。
  2. while循环语句的循环体代码如果只有一个语句的时候,那么可以省略大括号。但是也是不建议大家省略。
  3. while循环语句的判断条件后面不能跟有分号,否则会影响到执行的效果。

控制流程语句----do while循环语句

格式:

  1. do{
  2. //...
  3. }while(判断条件);

while循环语句与do-while循环语句的区别:

while循环语句是先判断后执行循环语句的,do-while循环语句是先执行,后判断。不管条件是否满足至少会执行一次。

11控制流程语句之---for循环语句

for循环语句的格式:

  1. for(初始化语句;判断语句;循环后的语句){
  2. //循环语句;
  3. }

for循环语句 要注意的事项:

  1. for(;;)这种写法是一个死循环语句,相当于while(true);
  2. for循环语句的初始化语句只会执行一次,只是在第一次循环的时候执行而已。
  3. for循环语句的循环体语句只有一句的时候,可以省略大括号不写。但是不建议省略。
  1. class Demo13 {
  2. public static void main(String[] args)
  3. {
  4. for(int i = 0 ; i< 5 ; i++){
  5. for(int j = 0 ; j<=i ; j++){ //控制列数
  6. System.out.print("*");
  7. }
  8. //换行
  9. System.out.println();
  10. }
  11. }
  12. }

转义字符:特殊字符使用”\”把其转化成字符的本身输出,那么使用”\”的字符称作为转移字符。

常见的转义字符有:

  1. \b Backspace (退格键)
  2. \t Tab 制表符(制表符的作用就是为了让一列对齐) 一个tab一般等于四个空格。
  3. \n 换行
  4. \r 回车 把光标移动到一行的首位置上。

注意: 如果是在windows系统上操作文件的时候需要换行,是需要\r\n一起使用的。如果是在其他的操作系统上需要换行,仅需要\n即可。

break关键字

break适用范围:只能用于switch或者是循环语句中。

break作用:

  1. break用于switch语句的作用是结束一个switch语句。
  2. break用于循环语句中的作用是结束当前所在的循环语句。

continue关键字

continue的适用范围:continue只能用于循环语句。

continue的作用:continue的作用是跳过本次的循环体内容。继续下一次。

continue要注意的事项:

1.在一种情况下,continue后面不能跟有其他语句,因为是永远都无法执行到。

2.continue 也可以配合标记使用的。

函数(方法):

函数的作用:提高功能代码的复用性。

函数的定义格式:

  1. 修饰符 返回值类型 函数名(形式参数..){
  2. 需要被封装的功能代码;
  3. return 结果;
  4. }
  1. public static int add(){
  2. int a =2;
  3. int b =3;
  4. return a+b;
  5. }

修饰符: public static

返回值类型:int。返回值类型就是指函数运行完毕后,返回的结果的数据类型。

注意:某些函数是没有结果返回给调用者的,那么这时候返回值类型是void。

函数名:add

函数名的作用:如果需要调用该函数就需要使用的函数名。 函数名只要符合标识符的命名规则即可。

函数名的命名规范:首单词全部小写,其他单词的首字母大写,其他小写。

形式参数:如果一个函数在运行的时候,存在着数据是要调用者确定 的,那么这时候就应该定义形式参数。

return : 把一个结果返回给调用者。

函数的特点:

  1. 函数定义好之后,是需要被调用才会执行的。main函数是有jvm调用的,不需要我们手动调用。
  2. 函数定义好之后是需要被调用才会执行的。
  3. 如果一个函数没有返回值返回给调用者,那么返回值类型必须是使用void表示。
  1. class Demo3 {
  2. public static void main(String[] args) {
  3. //String result = getGrade(189);
  4. //System.out.println(result);
  5. print(7);
  6. }
  7. //需求2: 定义一个函数打印一个乘法表,不需要返回任何数据。
  8. public static void print(int row){
  9. for(int i = 1 ; i<= row ; i++){
  10. for (int j = 1 ;j<=i ;j++ ){
  11. System.out.print(i+"*"+j+"="+i*j+"\t");
  12. }
  13. //换行
  14. System.out.println();
  15. }
  16. }
  17. //需求1: 定义一个函数判断一个分数的等级,把分数的等级返回给调用者。
  18. public static String getGrade(int score){
  19. String grade = ""; //定义一个变量存储等级
  20. if(score>=90&&score<=100){
  21. grade = "A等级";
  22. }else if(score>=80&&score<=89){
  23. grade = "B等级";
  24. }else if(score>=70&&score<=79){
  25. grade = "C等级";
  26. }else if(score>=60&&score<=69){
  27. grade = "D等级";
  28. }else if(score>=0&&score<=59){
  29. grade = "E等级";
  30. }else{
  31. grade = "补考等级";
  32. }
  33. return grade; //把等级返回给调用者
  34. }
  35. }

注意:如果一个函数的返回值类型是具体的数据类型,那么该函数就必须要保证在任意情况下都保证有返回值。(除了返回值类型是void以外)

return 关键字的作用:

  1. 返回数据给函数的调用者。
  2. 函数一旦执行到了return关键字,那么该函数马上结束。(能结束一个函数)

注意:一个函数的返回值类型 是void,那么也可以出现return关键字,但是return关键字的后面不能有数据。

break关键字与return关键字的区别:

1.break关键字是结束一个循环。

2.return关键字是结束一个函数。

函数的重载:在一个类中出现两个或者两个以上的同名函数,这个称作为函数的重载。

函数重载的作用:同一个函数名可以出现了不同的函数,以应对不同个数或者不同数据类型的参数。

函数重载的要求:

1.函数名一致。

2.形参列表不一致(形式参数的个数或者是对应的数据类型不一致)。

3.与函数的返回值类型是无关的。

  1. class Demo3 {
  2. public static void main(String[] args) {
  3. //System.out.println("Hello World!");
  4. //add1(1,2);
  5. add(1,2.0);
  6. }
  7. // 这些函数都是在做加法运算。
  8. public static double add(int a, int b) {
  9. System.out.println("两个参数的总和: "+ (a+b));
  10. return 3.14;
  11. }
  12. //重复定义
  13. public static int add(int a, double b) {
  14. System.out.println("double参数的总和: "+ (a+b));
  15. return 12;
  16. }
  17. /*
  18. public static void add(int a , int b , int c){
  19. System.out.println("三个参数的总和: "+ (a+b+c));
  20. }
  21. public static void add(int a , int b , int c,int d){
  22. System.out.println("四个参数的总和: "+ (a+b+c+d));
  23. }
  24. */
  25. }

java(运算符,控制流程语句,函数 )的更多相关文章

  1. java基础-控制流程语句

    一 前言 周末睡觉好舒服,都不想动了,就想睡睡,晒晒太阳,作者劳碌命还是过来写文章了.基础系列文章已经已经出到控制流程,感觉也挺快的,我很自信全网没都多少系列文章能有我这基础系列写的这么好,易于初学者 ...

  2. Java基础—控制流程语句(条件语句与循环结构)

    与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流程.Java的控制流程结构与C和C++的控制流程机构一样,只有很少的例外情况.没有goto语句,但break语句可以带标签,可以利用它实 ...

  3. java基础59 JavaScript运算符与控制流程语句(网页知识)

    1.JavaScript运算符 1.1.加减乘除法 加法:+(加法,连接符,正数)          true是1,false是0    减法:-    乘法:*    除法:/ 1.2.比较运算符 ...

  4. “全栈2019”Java第二十二章:控制流程语句中的决策语句if-else

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. 【JAVA零基础入门系列】Day8 Java的控制流程

    什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等.举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下 ...

  6. JavaScript(三)---- 控制流程语句

    常用的控制流程语句有判断语句.分支语句.循环语句.基本用法都和java中的一致,switch有几点特殊. 1.判断语句 格式:        if(判断条件){            符合条件执行的代 ...

  7. javascript控制流程语句

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. JavaScript---js语法,数据类型及方法, 数组及方法,JSON对象及方法,日期Date及方法,正则及方法,数据类型转换,运算符, 控制流程(三元运算),函数(匿名函数,自调用函数)

    day46 一丶javascript介绍 JavaScript的基础分为三个       1.ECMAScript:JavaScript的语法标准.包括变量,表达式,运算符,函数,if语句,for语句 ...

  9. php入门 数据类型 运算符 语言结构语句 函数 类与面向对象

    php PHP-enabled web pages are treated just like regular HTML pages and you can create and edit them ...

随机推荐

  1. iview中键盘上下左右事件的方法

    document.addEventListener('keydown', function(e){ var keyCode = e.keyCode; // Esc slide-up ) { e.pre ...

  2. HDU 1240 Asteroids!【BFS】

    题意:给出一个三维的空间,给出起点和终点,问是否能够到达终点 和上一题一样,只不过这一题的坐标是zxy输入的, 因为题目中说的是接下来的n行中分别是由n*n的矩形组成的,所以第一个n该是Z坐标,n*n ...

  3. webpack简短版零工程构建项目(二)

    webpack使用总结 1.初始化一个项目 npm init -y 之后会生成一个package.json配置文件. 2.安装webpack,vue,vue-loader npm install we ...

  4. 【Git 四】一款不错的 Git 客户端

    平常做开发使用 git bash 进行代码提交,一直没有使用过 git 相关的客户端. 直到有次同一分支下两个日志进行代码比较时,bash 返回的结果可视化理解起来比较差. 如果更改的部分比较多,问题 ...

  5. Git 内部原理 - (1)底层命令和高层命令 (2Git 对象

    文章摘选自git官网,这里复制下来表示我已阅读并学习过一次这些内容: 无论是从之前的章节直接跳到本章,还是读完了其余章节一直到这——你都将在本章见识到 Git 的内部工作原理和实现方式. 我们发现学习 ...

  6. iOS开发——捕获崩溃信息

    可通过注册NSUncaughtExceptionHandler捕获异常信息,将拿到的NSException细节写入Crash日志,精准的定位出错程序位置,有需要的,可直接将crash信息直接上传服务器 ...

  7. iOS开发——根据数组中的字典中的某一元素排序

    数组中的元素是字典,字典中的某一个元素,比如说姓名,现在需要按照姓名的首字母来排序,怎么搞? 做法很简单,在字典中加一个元素,保存姓名的首字母,然后用下面的方法排序. - (void)sortWifi ...

  8. 题解 CF383C 【Propagating tree】

    这道题明明没有省选难度啊,为什么就成紫题了QAQ 另:在CF上A了但是洛谷Remote Judge玄学爆零. 思路是DFS序+线段树. 首先这道题直观上可以对于每一次修改用DFS暴力O(n),然后对于 ...

  9. 16. IntellIJ IDEA 配置 Maven 以及 修改 默认 Repository

    转自:https://www.cnblogs.com/phpdragon/p/7216626.html 今天将IntellIJ IDEA 关于Maven的配置总结一下,方便以后可参考. IDEA版本: ...

  10. BZOJ 1193 搜索+贪心

    预处理出100*100以内的最优解 贪心走日 判断是0*4还是2*4 搞定 //By SiriusRen #include <queue> #include <cstdio> ...