zoukankan      html  css  js  c++  java
  • for语句注意事项

    注意以下代码第15,20行与第11行的不同

     1 public class LabeledFor { 
     2     public static void main(String[] args) {
     3         int i = 0; 
     4         outer: 
     5         for(; true ;) {
     6                 inner:
     7                 for(; i < 10; i++) { 
     8                     prt("i = " + i); 
     9                     if(i == 2) { 
    10                        prt("continue"); 
    11                        continue; 
    12                     }
    13                     if(i == 3) { 
    14                        prt("break");
    15                        i++; 
    16                        break; 
    17                     } 
    18                     if(i == 7) { 
    19                         prt("continue outer"); 
    20                         i++;
    21                         continue outer;
    22                     } 
    23                     if(i == 8) { 
    24                          prt("break outer"); 
    25                          break outer; 
    26                     } 
    27                     for(int k = 0; k < 5; k++) {
    28                         if(k == 3) {
    29                              prt("continue inner"); 
    30                              continue inner;
    31                         } 
    32                     } 
    33                } 
    34           } 
    35  } 
    36 static void prt(String s) { System.out.println(s); } } 

    注意break 会中断 for 循环,而且在抵达 for 循环的末尾之前,递增表达式不会执行。由于 break 跳过了递 增表达式,所以递增会在i==3 的情况下直接执行。在 i==7 的情况下,continue outer 语句也会到达循环顶 部,而且也会跳过递增,所以它也是直接递增的。 

    java语言规定:for,while,do循环中的重复执行语句不能是一条单独的局部变量定义语句;如果程序要使用循环来重复定义局部变量,这条局部变量定义语句必须放在花括号内才有效。

    如:

    for(int k = 0; k < 5; k++) {
        Cat cat = new Cat();
    } 

    而不能是

    for(int k = 0; k < 5; k++) 
    Cat cat = new Cat();
  • 相关阅读:
    MYSQL连接不上100061错误
    最小生成树
    装载问题
    贪心算法-- 纪念品分组
    折腾日记----「乱七八糟的过程」
    LeetCode ---- 474. 一和零「二维01背包」
    Erlang TCP 实例
    Erlang 入门 ---- 基础(一)
    SpringBoot ---- Spring Security
    LeetCode----1026. 节点与其祖先之间的最大差值
  • 原文地址:https://www.cnblogs.com/zhlblogs/p/9155862.html
Copyright © 2011-2022 走看看