• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

cynchanpin

  • 博客园
  • 联系
  • 订阅
  • 管理

View Post

<html>

文档版本号 开发工具 測试平台 project名字 日期 作者 备注
V1.0 2016.02.22 lutianfei none

运算符

  • 算术运算符
  • 赋值运算符
  • 比較运算符
  • 逻辑运算符
  • 位运算符
  • 三目运算符

算术运算符


* 注:整数相除仅仅能得到整数,若想得到小数,仅仅需将随意一个数据变为浮点数。


* eg:System.out.println(x*1.0/y);

  • ++,– :

    • 放在操作数前面,先自增或者自减,然后再參与运算。
    • 放在操作数后面,先參与运算,再自增或者自减。
  • 练习题1:

    int a=10,b=10,c=10
    a=b++; //a=10,b=11,c=10
    c=–a; //a=9,b=11,c=9
    b=++a; //a=10,b=10,c=9
    a=c–; //a=9,b=10,c=8

  • 练习题2:

    int x =4
    int y =(x++)+(++x)+(x*10)
    step1: 4+ (x = 5)
    step2: 4+6(x = 6)
    step3: 4+6 +(6*10)

‘+’的使用方法
  • 加法运算符
    • System.out.println(‘a’+1); 结果为:98
  • 正号
  • 字符串连接符
    • System.out.println(“Hello” + ‘a’ +1); 结果:helloa1
    • System.out.println(‘a’ + 1 + “Hello”);结果:98hello。第二个加号才是字符串连接符。

赋值运算符

  • 符号:

    • = , +=, -=, *=, /=, %=
    • =为主要的赋值运算符,其它的为扩展的赋值运算符
  • 面试题

    • short s=1; s = s+1; short s=1; s+=1;
    • 上面两个代码有没有问题,假设有,那里有问题
      • 第一个个有问题,因素short型变量參与运算时先转换为int,可能会有精度损失。

      • 第二个没有问题,由于扩展的赋值运算符隐含了一个强制类型转换,s+=1;不是等价于s = s+1;而是等价于 s = (s的数据类型)(s+1);


关系运算符


* 注1:比較运算符的结果都是boolean型。也就是要么是true,要么是false。



逻辑运算符

  • 逻辑运算符用于连接布尔型表达式,在Java中不能够写成3<x<6。应该写成x>3 & x<6 。
  • “&”和“&&”的差别:

    • 单&时,按位与!左边不管真假。右边都进行运算;
    • 双&时。逻辑与!假设左边为真,右边參与运算,假设左边为假,那么右边不參与运算。

    “|”和“||”的差别同理,双或时,左边为真,右边不參与运算。

  • 异或( ^ )与或( | )的不同之处是:当左右都为true时。结果为false。


位运算符

  • 注2:’^’的特点:一个数据对还有一个数据位异或两次。该数据不变。

  • 面试题1:请自己实现两个整数变量的交换

class OperatorTest{
    public static void main(String[] args){
        int a = 10;
        int b = 20;

        System.out.println("a:"+a+",b:"+b);

        //方式1:使用第三方变量(开发中最经常使用的)
        int c = a;
        a = b;
        b = c;

        //方式2:用位异或实现(面试装逼项)
        //结论:左边a,b,a; 右边:a^b
        a = a ^ b;
        b = a ^ b; // a^b^b = a
        a = a ^ b; // a^a^b = b

        //方式3:用变量相加的做法
        a = a+b; // a= 30
        b = a-b; // b= 10
        a = a-b; // a= 20

        //方式4:一句话搞定(面试装逼项)
        b = (a+b) - (a=b);
    }
}


三目运算符

  • 格式

    • (关系表达式)?表达式1:表达式2。
    • 假设条件为true。运算后的结果是表达式1;
    • 假设条件为false。运算后的结果是表达式2;
  • 练习:获取三个整数中的最大值

class OperatorTest{
    public static void main(String[] args){
        int a = 10;
        int b = 30;
        int c = 20;
        int temp = (a>b)?a:b;
        //System.out.println(temp);
        int max =(temp > c) ? temp : c;
        System.out.println("max is "+max);

        //方法2:一步搞定
        int max1 =(a>b) ?

((a>c) ? a : c) : ((b>c) ?

b : c); } }



键盘录入数据

  • 怎样实现键盘录入数据呢?(眼下先记住使用)
    • 导包(位置放到class定义的上面)
      • import java.util.Scanner;
    • 创建对象
      • Scanner sc = new Scanner(System.in);
    • 接收数据
      • int x = sc.nextInt();
import java.util.Scanner;
class ScannerDemo{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数据:");
        int x = sc.nextInt();    
        System.out.println("你输入的数据是:"+x);
    }
}


流程控制语句

  • 流程控制语句分类
    • 顺序结构
    • 选择结构
    • 循环结构

顺序结构

  • 顺序结构概述
    • 是程序中最简单最主要的流程控制,没有特定的语法结构,依照代码的先后顺序,依次运行,程序中大多数的代码都是这样运行的。

选择结构

  • Java语言提供了两种选择结构语句
    • if语句
    • switch语句
if语句第一种格式
if(关系表达式) {
    语句体
}
  • 运行流程

    • 首先推断关系表达式看其结果是true还是false
    • 假设是true就运行语句体
    • 假设是false就不运行语句体
  • 注意事项

    • 关系表达式不管简单还是复杂。结果必须是boolean类型
    • if语句控制的语句体假设是一条语句,大括号能够省略。假设是多条语句。就不能省略。建议永远不要省略。
    • 一般来说:有左大括号就没有分号,有分号就没有左大括号
if语句另外一种格式
if(关系表达式) {
       语句体1;
  }else {
       语句体2;
  }
  • 运行流程

    • 首先推断关系表达式看其结果是true还是false
    • 假设是true就运行语句体1
    • 假设是false就运行语句体2
  • if的另外一种格式和三元运算符之间的转换

    • 三元运算符的操作都能够使用if语句改进,反之不成立
    • 什么时候不成立呢?
      • 当if语句控制的语句体是一条输出语句的时候,就不成立。由于三元运算符是一个运算符,必需要求有一个结果返回。而输出语句却不能作为一个返回结果。

if语句第三种格式
if(关系表达式1) {
       语句体1;
  }else  if (关系表达式2) {
       语句体2;
  }
    …
  else {
       语句体n+1;
  }
  • if语句的使用场景:
    • A:针对表达式是一个boolean类型的推断
    • B:针对一个范围的推断
阅读全文
版权声明:本文为博主原创文章,未经博主同意不得转载。 举报
  • 标签:
  • java /
  • java运算符 /
  • java常见面试题 /
  • 流程控制语句 /
  • +号使用方法 /
  • 本文已收录于下面专栏:
  • 27天Java基础
0条评论
发表评论
HTML/XML objective-c Delphi Ruby PHP C# C++ JavaScript Visual Basic Python Java CSS SQL 其他

相关文章推荐

Java流程控制

流程控制 if流程概念 package com.cloud.day2; /* 控制流程语句之(if)推断语句 if推断语句的格式: 格式1:适用于一种情况使用。

   i...

  • dzy21
  • dzy21
  • 2016-06-28 08:30
  • 312

011.商品打折

今天做的是关于商品打折的一个小程序,多买多优惠,和昨天一样用了switch分支语句,今天一次就通过了,开心! 首先新建一个Scanner类用于接收控制台信息。也就是买家的消费金额。然后设置一个倍数m...
  • heyJJ1226
  • heyJJ1226
  • 2015-10-17 21:52
  • 161

Java中的流程控制语句

流程控制语句,顾名思义,就是控制程序走向的语句,当中包含条件语句,分支语句和循环语句。

条件语句:if条件句有三种形式 1:if(表达式){方法体} 2:if(表达式){方法体} else {方法...

  • heyJJ1226
  • heyJJ1226
  • 2015-10-22 15:44
  • 950

Java基础学习第四天——选择与循环结构

选择结构switch语句 循环结构 for结构循环 典型应用 while循环语句 do while循环语句 跳转控制语句 选择结构(switch语句) switch语句格式 switch 常见面试题
  • lutianfeiml
  • lutianfeiml
  • 2016-04-07 20:38
  • 610

JAVA基础知识: 流程控制习题答案

第一题: 有 36 人 36 块板砖,男人每人般 4 块。女人每人搬 3 块,小孩每 2 人搬 1 块。36 人都搬了一次,把砖刚好搬晚,问:几男几女的几个小孩? int na...
  • Spark2008
  • Spark2008
  • 2015-03-23 09:19
  • 1085

java学习之路 之 基本的语法-程序流程控制-switch语句练习题

public class SwitchTest { public static void main(String[] args) { /* switch (变量) { 变量的数据类型必须...
  • OnlyLove_longshao
  • OnlyLove_longshao
  • 2016-07-23 20:44
  • 1927

黑马程序猿——Java基础---跳转控制语句与循环语句练习

-----------android培训、java培训、java学习型技术博客、期待与您交流!

------------ 一、跳转控制语句 (一)Java语言提供了break,continue和...

  • u012811977
  • u012811977
  • 2015-08-04 21:35
  • 644

java学习之路 之 基本的语法-程序流程控制-(if-else)语句练习题

public class IfTest { public static void main(String[] args) { int a = 200; /* if (布尔表达式) {...
  • OnlyLove_longshao
  • OnlyLove_longshao
  • 2016-07-23 20:41
  • 2165

java学习之路 之 基本的语法-特殊的流程控制语句-练习题

class LoopTest7 { //break语句的使用1 public static void main(String[] args) { for (int i = 0; i < 20;...
  • OnlyLove_longshao
  • OnlyLove_longshao
  • 2016-07-24 21:17
  • 687

java学习之路 之 基本的语法-程序流程控制-循环结构-for 循环练习题

public class LoopTest4 { public static void main(String[] args) { /* for (初始化语句;循环条件推断;迭代语句) ...
  • OnlyLove_longshao
  • OnlyLove_longshao
  • 2016-07-24 20:45
  • 775

lutianfei的专栏

+关注
原创
91
粉丝
16
喜欢
0
  • 《超越自卑的活法Live》内容整理
  • 面向对象设计思想与常见设计模式小结
  • 代理与动态代理模式小结
  • Java 常见异常总结
很多其它文章

在线课程

【直播】计算机视觉原理及实战—屈教授
【直播】计算机视觉原理及实战—屈教授
【套餐】Spark+Scala课程包--陈超
【套餐】Spark+Scala课程包--陈超
  • 微博
    微信
    QQ
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原文地址:
原因补充:

(最多仅仅同意输入30个字)

posted on 2017-08-19 10:26  cynchanpin  阅读(206)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3