Thinking in Java 第四章 控制执行流程

4.0:就像有知觉的生物一样,程序在执行的过程中控制它的世界,并做出选择。在java中你要使用执行控制语句来做出选择。

         java是建立在C基础上的,java使用了C的所有流程控制语句。大多数过程型编程语言都具有某些形式的控制语句,他们通常在各种语言间是交迭的。在java中,涉及的关键字包括 :if-else,while,do-while,for,return, break,以及选择性语句switch。

         然而,java中并不支持goto语句(该语句引起许多反对意见,但它仍是解决某些特殊问题的最便利的方法),在java中仍可以使用goto的跳转,但是比典型的goto,多了很多限制。

         个人问题:一直以为goto是保留字,但是好像goto可以用在流程控制的跳转中,但是会有限制,它为什么受限制?

4.1 true和false

         所有的条件语句都是利用条件表达式的真假来决定执行路径。这里有一个条件表达式的例子,如a==b,它是用条件操作符“==”来判断a值和b值是否相等,并返回true和false。
         本章前面介绍的关系操作符,都可以用来构造条件语句,但是java不允许我们将一个数字作为布尔值来使用,但是在C中可以(C中  0代表假  非0代表真),但是java中不允许,必须转换成布尔值来做条件;如if(a)------>if(a!=0)。

4.2 if-else

          if-else语句是最常见的流程控制的形式,其中的else是可选的。
          
          if-else if -else格式
          
          在test()的可以看到一个else if,这个并不是新的关键字,仅仅是else后面紧跟了一个新的if语句。

4.3 迭代

          迭代语句(就是可以重复执行的语句,直到起控制作用的布尔表达式为假,才退出):while , do-while , for(用来控制循环) 

          while:
public static void main(String[] args) {
    while(true){
        System.out.print("条件一直为真,一直输出");
    };
}
          总结:
                 在循环刚开始时,会计算一次布尔表达式的值;而在下一次迭代的时候,会再次计算一次布尔值。
                 condition()方法用到了Math库里的static(静态)方法random(),该方法的作用是产生0和1之间的随机数(包括0,但不包括1)的一个double值
        
          do-while:
public static void main(String[] args) {
    do {
        System.out.print("打豆豆");
    } while (false);
}
        总结:while和do-while的区别,就是do-while中do的语句肯定会执行一次。

         for:
          for循环是最常用的迭代形式,在第一次迭代前要进行初始化。随后,会进行条件测试,每次迭代结束时,进行“步进”操作。
          格式:
         for(inirialization ; Boolean-expression ; step)
             初始化表达式  布尔表达式    布进运算
               statement;
             每次迭代前都会测试布尔表达式,若结果为false,就会执行代码。每次结束会执行一次布进。

练习1:写一个程序,打印从1到100的值

for (int i = 1; i < 101; i++) {
    System.out.print(i);
}

练习2:写一个程序,产生25哥int类型的随机数。对于每一个随机数,使用if-else语句来将其分类为大于,小于,或等于紧随它而随机生成的值。

练习3:修改练习2,把代码用一个while无限循环包括起来,然后运行它直至用键盘中断其运行(通常是按住CTRL + C)。

练习4:写一个程序,使用两个嵌套的for循环和取余操作符(%)来探测和打印素数(只能被其自身和1整除,而不被其他数字整除的整数)

练习5:重复第3章中的练习10,不要用Integer.toBinaryString()方法,而是用三元操作付和按位操作符来显示二进制的1和0。


4.3:逗号操作符

           在java中唯一用到逗号操作符的地方就是for循环的控制表达式。在控制表达式的初始化和步进控制部分,可以使用一系列的逗号分隔的语句。
          
           通过使用逗号操作符,可以在for语句中定义多个变量,但是他们必须具有相同的类型。

public static void main(String[] args) {
    for (int i = 1, j = i + 10; i < 5; i++, j = i * 2) {
        System.err.println("i = " + i + "j = " + j);
    }
}

           for循环中int定义涵盖了i和j,在初始化部分实际上可以拥有任意数量具有相同类型的变量定义。

           在一个控制表达式中,定义多个变量的这种能力,只限于for循环适用,在其他选择或迭代语句中不能使用这种方式。

4.4:Foreach语法:
        
           javaSE5引入了一种新的for语法,用于数组和容器。即Foreach语句,表示不必创建int变量去对由访问项构成的序列进行计数。foreach将自动产生每一项。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值