第3章 控制程序流程

3.1 使用java运算符

  3.1.1 优先级

  3.1.2 赋值

  3.1.3 算术运算符

  3.1.4 自动递增和递减

  3.1.5 关系运算符

  3.1.6 逻辑运算符

  3.1.7 按位运算符

  3.1.8 移位运算符

  3.1.9 三元if-else运算符

  3.1.10 逗号运算符

  3.1.11 字串运算符

  3.1.12 运算符常规操作规则

  3.1.13 造型运算符

  3.1.14 java没有”sizeof“

  3.1.15 复习计算顺序

  3.1.16 运算符总结

3.2 执行控制

  3.2.1 真和假

  3.2.2 if else

  3.2.3 反复

  3.2.4 do-while

  3.2.5 for

  3.2.6 中断和继续

  3.2.7 开关

3.1.1 优先级

package com.sunny.hello.c3;

public class Demo1 {    public static void main(String[] args) {        int x = 1, y =1, z = 1;        int a = x + y - 2/2 + z;        int b = x + (y - 2)/(2 + z);        System.out.println("a = " + a + " ,b = "+b);    }}

输出:

a = 2 ,b = 1

3.1.2 赋值

package com.sunny.hello.c3;

public class Assignment {
    //理解基本类型和对象赋值的区别
    public static void main(String[] args) {
        Number n1 = new Number();
        Number n2 = new Number();
        n1.i = 9;
        n2.i = 47;
        System.out.println("1:n1.i: " + n1.i + ", n2.i: " + n2.i);
        n2 = n1;
        System.out.println("2:n1.i: " + n1.i + ", n2.i: " + n2.i);
        n1.i = 27;
        System.out.println("1:n1.i: " + n1.i + ", n2.i: " + n2.i);
    }
}
class Number {
    int i;
}

运行结果:

1:n1.i: 9, n2.i: 47
2:n1.i: 9, n2.i: 9
1:n1.i: 27, n2.i: 27
package com.sunny.hello.c3;

public class PassObject {
    static void f(Letter y){
        y.c = ‘z‘;
    }

    public static void main(String[] args) {
        Letter x = new Letter();
        x.c = ‘a‘;
        System.out.println("x.c:"+x.c);
        f(x);
        System.out.println("x.c:"+x.c);
    }
}
class Letter{
    char c;
}

运行结果:

x.c:a
x.c:z

3.1.4 i++与i--

package com.sunny.hello.c3;

public class AutoInc {
    public static void main(String[] args) {
        int i = 1;
        System.out.println("i:"+i);
        System.out.println("++i:" + ++i);
        System.out.println("i++:" + i++);
        System.out.println("i:" + i);
        System.out.println("--i:" + --i);
        System.out.println("i--:" + i--);
        System.out.println("i:"+i);
    }
}

运行结果:

i:3
--i:2
i--:2
i:1

3.1.5 关系运算符

package com.sunny.hello.c3;

public class Equivalence {
    public static void main(String[] args) {
        //检查对象是否相等
        Integer n1 = new Integer(47);
        Integer n2 = new Integer(47);
        System.out.println(n1 ==  n2);  //false
        System.out.println(n1.equals(n2)); //true
    }
}
package com.sunny.hello.c3;

public class EqualsMethod {
    public static void main(String[] args) {
        Value v1 = new Value();
        Value v2 = new Value();
        v1.i = 100;
        v2.i = 100;
        System.out.println(v1.equals(v2)); //false
        /* 这里的equals调用的是Object类的
        public boolean equals(Object obj) {
            return (this == obj);
        }*/
    }
}
class Value{
    int i;
}

3.1.6 逻辑运算符

package com.sunny.hello.c3;

public class ShortCircuit {
    public static boolean test1(int i){
        if(i>1){
            System.out.println("test1()执行");
           return true;
        }
        return false;
    }
    public static boolean test2(int i){
        if(i%2 == 0){
            System.out.println("test2()执行");
            return true;
        }
        return false;
    }

    public static void main(String[] args) {
        int a = 2, b = 6;
        if(test1(a) && test2(b)){
            System.out.println("未短路");
        }else{
            System.out.println("短路");
        }
    }
}

运行结果:

test1()执行
test2()执行
未短路

若将a的值改为1,则:(注意,test1为false,则test2不会继续执行了,这就是短路)

短路

3.1.8 移位运算符

<<:左移

>> :右移(若值为正,则在高位插入 0;若值为负,则在高位插入 1)

>> :无符号右移(无论正负,都在高位插入0)

package com.sunny.hello.c3;

public class URShift {
    public static void main(String[] args) {
        int a = 2;
        System.out.println(a<<2);
        System.out.println(a>>2);
        System.out.println(a>>>2);
        short b = -1;
        System.out.println(b<<2);
        System.out.println(b>>2);
        System.out.println(b>>>2);

    }
}

运行结果:

8
0
0
-4
-1
1073741823

3.1.9 三元运算符

public int ternary(int i){
        return i<10 ? i*100 : i*10;
    }

3.1.15 复习计算顺序

算术运算符>关系运算符>逻辑运算符>赋值

3.1.16 运算符总结

溢出问题:

package com.sunny.hello.c3;

public class Overflow {
    public static void main(String[] args) {
        int big = Integer.MAX_VALUE;
        System.out.println(big);
        big = big * 4;
        System.out.println(big);
    }
}

输出结果:

2147483647
-4

3.2: 执行控制

break和continue区别:

package com.sunny.hello.c3;

public class Demo {
    public static void main(String[] args) {
        for(int i=0; i<6; i++){
            if(i%2 != 0){
                break;
            }else{
                System.out.println(i);
            }
            System.out.println(i + "是偶数");
        }
    }
}

运行结果:

0
0是偶数
package com.sunny.hello.c3;

public class Demo {
    public static void main(String[] args) {
        for(int i=0; i<6; i++){
            if(i%2 != 0){
                continue;
            }else{
                System.out.println(i);
            }
            System.out.println(i + "是偶数");
        }
    }
}

运行结果:

0
0是偶数
2
2是偶数
4
4是偶数

switch开关:

package com.sunny.hello.c3;

public class VowelsAndConsonants {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++){
            char c = (char)(Math.random()*26+‘a‘);
            System.out.println("c:"+c);
            switch (c){
                case ‘a‘:
                case ‘e‘:
                case ‘i‘:
                case ‘o‘:
                case ‘u‘:
                    System.out.println("vowel");
                    break;
                case ‘y‘:
                case ‘w‘:
                    System.out.println("Sometimes a vowel");
                    break;
                default:
                    System.out.println("consonant");
            }
        }
    }

}

运行结果:

c:c
consonant
c:h
consonant
c:g
consonant
c:e
vowel
c:b
consonant
时间: 2024-11-05 18:51:44

第3章 控制程序流程的相关文章

第三章 控制程序流程

一.使用Java运算符 1.优先序 2.赋值.指派 3.数学运算符 4.递增和递减 5.关系运算符 6.逻辑运算符 当整个表达式可以被确切的判断出真伪时,表达式的评估动作便会结束(短路式核定) 7.位运算符(&,|) 8.位移运算符 9.三元运算符 10.逗号运算符 11.转型运算符(强制转换数据类型) 二.流程控制 1.true.false 2.if-else 3.return 4.while.do-while.for //迭代 5.break和continue 6.label标记 7.swi

《21天学会C++》学习笔记第7章控制程序流程

1.迭代意味着重复做同样的工作.迭代的主要方法是循环. 2.while()循环,do...while()循环,for循环, 3.注意do...while()循环的do是真的要出现的,不仅仅是一个标志而已: 1 #include<iostream> 2 int main() 3 { 4 using namespace std; 5 int counter; 6 cout<<"how many hellows"; 7 cin>>counter; 8 do

读TIJ -3 控制程序流程

<Think in java·第 3 章控制程序流程> 这一章应该不会涉及"思想",<编程导论(Java)·0.2.2 操作符和操作数>后,将相关内容压缩成一节<第3章功能抽象·3.2实现>. 3.1 使用Java 运算符 副作用(side effect):[p98:副作用一般是针对操作(表达式)而言的,一个操作/表达式有"副作用"是指在对该表达式求值时,会改变程序的一个或多个数据,以致再次对该表达式求值时,可能会得出不同的结果.

构建之法学习(第六章 敏捷流程)

第6章  敏捷流程 本章主要介绍了敏捷流程及其原则,Backlog.Burn-down.Sprint.Scrum方法论.以及什么时候选择敏捷的开发方法,什么时候选择其他方法. 1.敏捷的流程 定义:"敏捷流程"是一系列价值观和方法论的集合. 现有的做法 敏捷的做法 流程和工具 个人和交流 完备的文档 可用的软件 为合同谈判 与客户合作 执行原定计划 响应变化 2.敏捷开发原则 尽早并持续地交付有价值的软件以满足顾客需求 敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势 经常发

控制程序流程(2)

3.2 执行控制   Java使用了C的全部控制语句,所以假期您以前用C或C++编程,其中大多数都应是非常熟悉的.大多数程序化的编程语言都提供了某种形式的控制语句,这在语言间通常是共通的.在Java里,涉及的关键字包括if-else.while.do-while.for以及一个名为switch的选择语句.然而,Java并不支持非常有害的goto(它仍是解决某些特殊问题的权宜之计).仍然可以进行象goto那样的跳转,但比典型的goto要局限多了. 3.2.1 真和假 所有条件语句都利用条件表达式的

控制程序流程

我叫鱼汤,是一名菜鸡.如有高手路过,望指点.望传功. 这一篇是要整理我的三份笔记,主要内容就是java里几个简单的控制程序流程的方法,程序自然执行顺序是由上而下依次执行,但是有时这样达不到我们想要的目的,这里就会用到流程控制的方法. 一.选择 1. 单分支if语句 if(布尔表达式){ //布尔表达式为true时所执行的语句: } 如果()里的条件得到满足,{}里的语句才回执行,主要用于只有一个筛选要求. 2. 双分支if语句 if(布尔表达式) { //布尔表达式为true时所执行的语句: }

4.JAVA编程思想——控制程序流程

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040228 控制程序流程 在Java 里,我们利用运算符操纵对象和数据,并用执行控制语句作出选择.Java 是建立在C++基础上的,所以对C 和C++程序员来说,对Java 这方面的大多数语句和运算符都应是非常熟悉的.当然,Java 也进行了自己的一些改进与简化工作. 1      使用 Java 运算符 加号(+).减号和负号(-).乘号(*).除号(/)以及等号(=)的

鸟哥的linux私房菜——第20章 启动流程、模块管理与loader

20.1 Linux启动流程分析 Linux启动过程: 按下开机电源后计算机硬件主动读取BIOS来加载硬件信息以及硬件系统的自我测试,之后系统会主动读取第一个可启动的设备(由BIOS设置),此时就可以读入引导加载程序(boot loader)了,引导加载程序指定使用那个内核文件来启动,并实际加载内核到内存中解压缩与执行,此时内核就能够在内存中活动,并检测所有硬件信息与加载适当的驱动程序来使主机运行,等内核检测硬件与加载驱动程序完毕后,就可以登录了. 1)加载BIOS的硬件信息与进行自我测试,并依

重新开始学习javase_控制程序流程

@学习thinking in java 二.控制程序流程 负数使用 Java 运算符:运算符以一个或多个自变量为基础,可生成一个新值.自变量采用与原始方法调用不同的一种形式,但效果是相同的.根据以前写程序的经验,运算符的常规概念应该不难理解.加号(+).减号和负号(-).乘号(*).除号(/)以及等号(=)的用法与其他所有编程语言都是类似的.所有运算符都能根据自己的运算对象生成一个值.除此以外,一个运算符可改变运算对象的值,这叫作“副作用”(Side Effect).运算符最常见的用途就是修改自