for循环语句
程序员文章站
2022-07-13 14:10:57
...
目录
语法:
格式:
for(表达式1;表达式2;表达式3){
//若干语句(循环体)
}
执行规则:
- 计算表达式1,完成必要的初始化工作;
- 判断表达式2的值,若表达式2的值为true,则进行3,否则进行4;
- 执行循环体,然后计算表达式3,以便改变循环条件,进行2;
- 结束for语句的执行。
流程图:
打断循环:
-
continue:跳出一次循环;
-
break:跳出一层循环;
-
return:跳出方法,之后不能再跟其他代码;
-
标签。
输出结果:
- continue:
- break:
- return:
可以看到在return后写输出语句,显示错误。
j=0输出后结束main方法。
- 标签
左侧代码跳出内层循环,效果同break;右侧代码跳出外层循环,效果同return,不同的是,其后可以继续写代码,不会报错。
应用——(*)输出平行四边形、等腰三角形、菱形:
- 平行四边形:(主要代码)
/** * 输出平行四边形parallelogram * @param n 平行四边形的高(*) * @param j 平行四边形的长(*) */ public void para(int n,int j){ for (int i = 0;i < n ;i++){ for (int k = 0; k < i; k++){ System.out.print(" "); } for(int num = 0;num < j;num++){ System.out.print("*"); } System.out.println(); } }
结果(输的入的是n=5,j=3):
- 等腰三角形:
/**
* 输出三角形triangle
* @param n 三角形的高
*/
public void triangle(int n){
for (int i = 0; i < n; i++) {
for (int k = n - i; k > 0; k--) {
System.out.print(" ");
}
for (int num = 0; num < 2 * i + 1; num++) {
System.out.print("*");
}
System.out.println();
}
结果(我输入的是n=4):
ps:可以看到最后一行前面仍有一个空格。因为行数i是0开始的,而n=4,n总比行数i大1,故最后仍有一个空格。
k>1或者k = n - i - 1 可将前面空格去掉。
- 倒立着的三角形:
public void dTriangle(int n){
for (int i = 0; i < n; i++) {
for (int k = 0 ; k < i; k++) {
System.out.print(" ");
}
for (int num = 0; num < 2 * (n - 1 - i) + 1; num++) {
System.out.print("*");
}
System.out.println();
}
}
结果(我输入的n=4):
ps:需要注意 在输出“*”的循环中num < 2 * (n - 1 - i) + 1,若n没有 -1.最后一行输出是三个*,因为n比行数i大1
- 菱形
菱形可以看作是一个正着的三角形+一个倒立的三角形
/**
* 输出菱形rhombus
* @param n 整数,菱形高的一半
*/
public void rhom(int n){
for (int i = 0; i < n; i++) {
for (int k = n - i ; k >0; k--) {
System.out.print(" ");
}
for (int num = 0; num < 2 * (i-1) + 1; num++) {
System.out.print("*");
}
System.out.println();
}
for (int i = 0; i < n; i++) {
for (int k = 0 ; k < i; k++) {
System.out.print(" ");
}
for (int num = 0; num < 2 * (n - 1 - i) + 1; num++) {
System.out.print("*");
}
System.out.println();
}
}
结果(我输入的n=3):
ps:正着、倒立三角形合并时最后一行重复,所以在正着三角形输出*循环语句时num < 2 * (i-1) + 1删去最后一行重复的,也是第一行空白的原因。