Java 语言基础之语句
程序的四种流程控制结构:
- 顺序结构
- 判断结构 : if 语句
- 选择结构 : switch 语句
- 循环结构 : while 语句, do...while 语句, for 语句
以下主要分析循环结构:
- while 格式
while(条件表达式)
{
执行语句;
}
- do...while 格式
do
{
执行语句;
}while(条件表达式);
特点: 无论条件是否满足, 循环体至少执行一次.
- for 格式
for(初始化表达式; 循环条件表达式; 循环后的操作表达式)
{
执行语句;
}
for 和 while 的区别:
- 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 基础视频(毕向东)