zoukankan      html  css  js  c++  java
  • java基础5.1---算法---要素

    一、运算符(方法组成二:方法体中算法的组成一)

    1、运算运算

    1.1运算的概述

    1.1.1运算的类型:除了通常的加(+)、减(-)、乘(*)、除()之外,还包括取模运算(%)和自增(++)及自减(--)运算

    1.2运算的使用

    1.2.1使用概述:

    使用“++”和“--”运算符:可以使变量的值加1或减1

    1.2.2使用情况

    (1)如果写在变量前,表示在使用这个变量之前加1或减1

    (2)    如果写在变量后,表示这个变量使用完之后再加1或减1

    2、关系运算

    2.1运算的概述

    2.1.1作用

    用于判断数据之间的大小关系

    2.1.2类型

    包括大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、不等于(!=) 六个运算符

    2.2使用

    使用boolean类型来表示这种是否的状态,如果关系成立为true,否则为false

    3、逻辑运算

    3.1概述

    3.1.1作用

    用来进行逻辑运算的,它是建立在关系运算的基础之上的;当两个关系运算需要兼顾考虑时,可以使用逻辑运算符

    3.1.2分类

    与(&&)、或(||)和非(!)

    单&和单!

    3.2使用

    3.2.1使用概述

    参与逻辑运算的变量或表达式都是boolean类型,运算结果也为boolean类型

    3.2.2使用类型

    (1)&&

    当变量b1和变量b2同时为true时,&&表达式为true。

    短路逻辑:对于“&&”,当第一个关系表达式就可以判断出整个表达式的结果时,就不会再去判断后面的第二个表达式

    (2)||

    当变量b1和变量b2有一个为true时,||表达式为true。

    短路逻辑对于“||”,当第一个操作数为true时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是true

    (3)!只有一个表达式,当b1为true时,!b1为false,b1为false时,!b1为true。

    (4)&

    没有短路效果,前面条件满足还会执行后面的

    (5)|

    没有短路效果,前面条件满足还会执行后面的

    4、赋值运算

    4.1概述

    4.1.1作用

    用于对变量赋值

    4.1.2分类

    (普通)=

    (扩展)加减乘除余=;例如+=;

    注:有强制类型转换的隐藏(好像是---)

    4.2使用

    4.2.1为变量赋值

    4.2.2其本身之值即为所赋之值

    除了将右边的表达式计算出来赋给左边以外还具备如下特点:赋值表达式本身也有值,其本身之值即为所赋之值

    System.out.println(index = num % 5);  // 结果为:3,赋值表达式本身也有值

    5、字符连接运算

    使用“+”进行字符串连接

    当 + 号作用于两个数字类型变量时,是在进行算术运算。

    当 + 号两边的变量有一个是字符串类型,即””括起来的时候,则其进行的是字符串的连接,连接后的结果为字符串类型

    6、条件(三目)运算

    6.1概述

    条件运算符又称“三目”运算符,其结构为:boolean表达式 ? 表达式1:表达式2

    6.2使用

    6.2.1条件运算符的规则如下:

    (1)先计算boolean表达式;

    (2)如果boolean表达式的值为true,整个表达式的值为表达式1的值;

    (3)如果boolean表达式的值为false,整个表达式的值为表达式2的值。

    int flag = a > b ? 1 : -1;  

    6.2.2     嵌套使用

    所谓嵌套是指在条件(三目)表达式:“boolean表达式 ? 表达式1:表达式2”中的表达式1或表达式2也是条件(三目)表达式,相当于多重判断;

    一、      结构语句(方法组成二:方法体中算法的组成二)

    1、概述

    2、分类

    顺序、分支、循环

    3、分支结构if-else

    3.1概述

    分支结构即为根据一个条件做判断,如果条件满足则执行A,否则执行B。

    3.2使用

    3.2.1使用类型:

    (1)当条件满足时运行某些语句;当条件不满足时则不运行这些语句——if结构。

    (2)当条件满足时运行某些语句; 当条件不满足时运行另外一些语句——if-else结构

    3.2.2使用语法

    语句0;

    if(逻辑表达式){

            语句1;

            语句2;

    }

    语句3;

    如上语句的执行步骤如下所示:

    步骤一:执行语句0;

    步骤二: 判断逻辑表达式的值,此表达式的值结果为boolean类型,即true或者false。此处可以是关系表达式也可以是逻辑表达式。

    1. 若值为true,则执行if语句块中的语句;
    2. 若值为false,则跳过if语句块;

    步骤三:执行语句3语句。

    3.2.3{}

    {}中只有一条语句,可以省略{},但是不建议;

    4、分支结构Switch-case

    4.1概述

    switch-case是一种特殊的分支结构

    4.2使用

    4.2.1没有break

    switch是以case后的整型常量值作为入口的,若值相等,即开始执行其后面的语句。若没有找到匹配的值,则只执行default的语句;

    4.2.2有break

    如上程序中的break语句的作用在于跳出switch结构;

    当执行过程遇到break,就执行就跳出switch

    4.2.3:case的值

    第一,  case后面的常量值必须不同

    第二,  switch后面的整型表达式的值必须是整型或字符型。

    第三,  从JDK 7.0开始,switch-case可以支持字符串表达式,将更加方便程序的操作。

    5、循环

    5.1概述

    5.1.1概念

    循环是程序设计语言中反复执行某些代码的一种计算机处理过程, 是一组相同或相似语句被有规律的重复性执行。

    5.1.2两个要素

    两个要素,其一要素为循环体, 也就是被反复执行的相同或相似的语句,其二要素为循环的条件,也就是循环得以继续执行下去的条件,常常以循环次数的方式体现。

    5.1.3分类

    while、do-while、for。

    5.1.4语法

    (1)break:可使程序终止循环而执行循环后面的语句,常常与条件语句一起使用

    (2)continue:作用为跳过循环体中剩余语句而执行下一次循环

    5.1.5分析问题3部分

    循环变量初始状态

    循环条件

    循环变量的改变

    5.2while循环

    5.2.1什么时候用

    先判断再执行

    5.2.2语法

    while( boolean表达式 ) {
            语句块;}

    while语句的执行过程为,首先计算boolean表达式的值,而后进行判断,若值为true则执行语句块,语句块执行完后再次判断boolean表达式的值,如果为true则继续执行语句块,如此循环往复,直到boolean表达式的值为false时退出while循环而执行while之后的语句

    5.3do---while

    5.3.1什么时候用

    先执行一次,再判断

    5.3.2语法

    do {

            语句块

    } while( boolean表达式 ) ;

    do-while语句的执行过程为,先执行语句块,再判断boolean表达式,如果为true则再次执行语句块,如此循环往复,直到boolean表达式的值为false时止。也就是说,do-while语句,无论boolean表达式是否为true,都先执行一次语句块。

    5.4for循环

    5.4.1什么时候使用

    用于将某个语句或语句块重复执行预定次数的情形

    5.4.2语法

    for ( 表达式1;表达式2;表达式3  )  {

    语句块(循环体)

    }

    5.4.3表达式的特殊使用

    特殊方式1:表达式1位置内容为空

    特殊方式2:表达式3位置内容为空时

    特殊方式3:表达式1,2,3位置内容均为空时---死循环

    特殊方式4:表达式 1 和 3 位置内容的多样化

    for语句中的三个表达式中表达式1和表达式3可以使用逗号表达式,逗号表达式就是通过”,”运算符隔开的多个表达式组成的表达式,从左向右进行计算

    for ( int  i =1 , j = 6  ;  i <= 6  ;  i +=2 , j -=2 )

    向成为千里马奋斗,为伯乐打call;
  • 相关阅读:
    BZOJ 1061: [Noi2008]志愿者招募 [单纯形法]【学习笔记看另一篇吧】
    BZOJ 1070: [SCOI2007]修车 [最小费用最大流]
    COGS743. [网络流24题] 最长k可重区间集
    BZOJ 3531: [Sdoi2014]旅行 [树链剖分]
    BZOJ 2243: [SDOI2011]染色 [树链剖分]
    LCA 倍增||树链剖分
    BZOJ 1036: [ZJOI2008]树的统计Count [树链剖分]【学习笔记】
    POJ2104 K-th Number[主席树]【学习笔记】
    BZOJ 1014: [JSOI2008]火星人prefix [splay 二分+hash] 【未完】
    NOIP2001 一元三次方程求解[导数+牛顿迭代法]
  • 原文地址:https://www.cnblogs.com/mhy666/p/mhy_java_suanfa.html
Copyright © 2011-2022 走看看