第一次写贴有点小紧,不知道前面的前辈们有没有撞贴的,如果有撞贴的,不好意思,你都毕业了,拿不了我怎么样,以下是我全手打的代码,及全用脑子想的处理方法。
通过这几天的利用循环的嵌套,输出执行一些不同形状的输出结果,如比较常见的是打印出:
****
****
****
这种结果的,执行的逻辑很简单,就是外循环是打印行数,内循环是打印列数,代码如下:
public static void main(String[] args) {
for (int i = 1; i <=3 ; i++) {
for (int j = 1; j <=4 ; j++) {
System.out.print("* ");
}
System.out.println();
}
针对代码中i为行数,j 为列数,所以打印这些形状的就能找到规律了。
o * o
* o *
o * o
如上图出现的,这种规律是比较相似,但从第一行可以看出第一个和最后一个是跟其他的不一样,第二行就跟到第二个和倒数第二个,所以针对这个逻辑,从第一行到最后一行的顺序就从1,2,3…,后面而是反过来的,所以就能用判断语句来修改,代码如下:
public static void main(String[] args) {
for (int i = 1; i <=3 ; i++) {
for (int j = 1; j <=3 ; j++) {
if(j==i || j==4-i){
System.out.print("o ");
}else {
System.out.print("* ");
}
}
System.out.println();
}
}
写代码就是按规律和逻辑来一步步执行,只要能按顺序走,就能找到好多方法,如:
* * * * *
* * * *
* * *
* *
*
这个输出结果,空格的地方从上往下就是从0,1,2,3的地方填写,而*号而且是相反,也是说外循环越往后执行,内循环执行的次数越少,就能快速找到方法,代码如下:
public static void main(String[] args) {
for (int i = 5; i >= 1; i--) {
for (int k = 1; k < 6 - i; k++) {
System.out.print(" ");
}
for (int j = i; j >= 1; j--) {
System.out.print("* ");
}
System.out.println();
}
}
就是在外循环中套两个内循环,一个负责打印空格,一个负责打印*,利用递减的规律,算出每次执行要打印出多少个空格和*号,正三角和这个倒三角差不多,利用递增的规律来算,就不多描述了。当然也有特殊的,没错压轴的来了,请上图:
*
***
*****
*******
*********
*******
*****
***
*
平行四边形闪亮登场,前面的只是小菜,就是要衬托出这个的复杂,这个就如同镜像,当然,你可以用倒三角的方法和正三角的方法组合打印出来,但那种太长,所以要用短一点的,上代码!!!!
public static void main(String[] args){
for (int i=1;i<=9;i++){
int y=5-i;
y=y<0?y*-1:y;
for (int j=1;j<=y;j++){
System.out.print(" ");
}
for(int z=1;z<=2*(5-y)-1;z++){
System.out.print("*");
}
System.out.println("");
}
}
感觉如何,没错,像镜子一样的输出方法,就是利用0为中间点,向上下进行,就是为正负数的方法来,再用绝对值的方式,就能得出第一行和最后一行的输出一样,以此类推,就能得出这样的结果。
|
|