Fork me on GitHub

Java 语言基础之语句

程序的四种流程控制结构:

  1. 顺序结构
  2. 判断结构 : if 语句
  3. 选择结构 : switch 语句
  4. 循环结构 : while 语句, do...while 语句, for 语句

以下主要分析循环结构:

  • while 格式
while(条件表达式)
{
    执行语句;
}
  • do...while 格式
do
{
    执行语句;
}while(条件表达式);

特点: 无论条件是否满足, 循环体至少执行一次.

  • for 格式
for(初始化表达式; 循环条件表达式; 循环后的操作表达式)
{
    执行语句;
}

for 和 while 的区别:

  1. for 和 while 可以互换;
    2, 如果需要通过变量来对循环进行控制, 该变量只作为循环增量存在时, 区别就体现出来了.例如:

需求: 打印 1 ~ 10 十个数字
int x = 1;
while(x < 11)
{
System.out.println("x="+x);
}

for(int y = 1; y<11; y++)
{
System.out.println("y="+y);
}

备注:

  • for 循环一结束, y 在内存中就释放了.
  • 局部代码块: 可以决定局部变量的生命周期.

for 嵌套结构 (大圈套小圈思想)

嵌套循环, 外循环控制的是行数, 内循环控制的是列数.

练习一: 打印 5 * 5 雪花图形
*****
*****
*****
*****
*****

for(int x=0; x<5; x++)
{
    // 可以先写内循环,确定一行的输出,
    // 然后在写外循环,确定输出多少行
    for(int y=0; y<5; y++)
    {
        System.out.print("*");
    }
    System.out.println();//打印完一行后,换行
}


练习二: 打印倒三角雪花(尖朝下)
*****
****
***
**
*

int z = 5;
for(int x=1; x<=5; x++)
{
    // 列数随着行数的增加而递减,
    // 递减可以有两种方式解决: 头不变, 尾变: 1-5, 1-4, 1-3...
    // 头变, 尾不变: 1-5, 2-5, 3-5...
    for (int y=1; y<=z; y++)
    {
        System.out.print("*");
    }
    System.out.println();
    z--;
}

int z = 1;
for(int x=1; x<=5; x++)
{
    // 列数随着行数的增加而递减,
    // 头变, 尾不变: 1-5, 2-5, 3-5...
    for (int y=z; y<=5; y++)
    {
        System.out.print("*");
    }
    System.out.println();
    z++;
}

又发现 z 递增, x 也在递增. 故最终代码:
for(int x=1; x<=5; x++)
{
    // 列数随着行数的增加而递减,
    for (int y=x; y<=5; y++)
    {
        System.out.print("*");
    }
    System.out.println();
}



练习三: 打印倒三角雪花(尖朝上)
*
**
***
****
*****

for(int x = 1; x<=5; x++)
{
    for(int y = 1; y<=x; y++ )
    {
        System.out.print("*");
    }
    System.out.println();
}



练习四: 打印九九乘法表

for(int x=1; x<=9; x++)
{
    for(int y=1; y<=x; y++)
    {
        System.out.print(y+"*"+x+"="+y*x+"\t");
        // \t 为制表符,保证格式优良
    }
    System.out.println();
}



练习五: 打印特殊三角形
* * * * *
 * * * *
  * * *
   * *
    *

分析: 该图形由 "*" 和空格组成
由两个三角形组成: 尖朝上的三角形和尖朝下的星空格

// 一共 5 行
for(int x=1; x<=5; x++)
{
    // 打印尖朝上的三角形,第一行不打印
    for(int y=1; y<x; y++)
    {
        System.out.print(" ");
    }
    // 打印尖朝下的星空格
    for(int z=x; z<=5; z++)
    {
        System.out.print("* ");
    }
    System.out.println();

}

其他流程控制语句

  • break 应用范围: 选择结构(switch) 和循环结构
  • continue 应用范围: 循环结构. 代表结束本次循环, 继续下次循环.

参考资料:
JavaSE 基础视频(毕向东)

posted @ 2017-08-23 21:08  小a的软件思考  阅读(132)  评论(0编辑  收藏  举报