黑马程序员技术交流社区

标题: 关于forfor循环的问题,求大神们详解。。。谢谢、 [打印本页]

作者: yekong262    时间: 2014-1-5 14:18
标题: 关于forfor循环的问题,求大神们详解。。。谢谢、
需求;打印下面图形。
%%%%*
%%%*&*
%%*&*&*
%*&*&*&*
*&*&*&*&*

思路;        1.因为是图形化界面。有很多行很多列,用循环语句,for嵌套
                2.定义变量x记录不断变化的行数,定义外循环控制行数,格式,for (x=1; x<=5;x++ ) x<=5 控制行数
                3定义变量y记录%不断变化的每行的个数,定义内循环控制每行的个数,格式for (y=; y<=;y++ )
                y随着x的增加减少。所以for (x=y; x<=5;y++ )
               4然后在打印一个“*“ 然后把&*看做一组,打印。  &*的个数随着行数的变化递增所以 定义变量q格式for(q=1;q<=x-1;q++)
               5.一行结束 打印System.out.print("*");来换行、、
  1. */class  ForFortestDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 for (int x=1; x<=4;x++ )//先打印%图形 控制行数
  6.                 {
  7.                         for (int y=x; y<5;y++ )//控制每行的个数。
  8.                         {
  9.                                 System.out.print("%");
  10.                         }
  11.                        

  12.                                         System.out.print("*");//先单独打印*

  13.                        
  14.                        
  15.                         for (int q=1;q<=x-1 ; q++)
  16.                         {
  17.                                         System.out.print("&*");//然后打印&*。&*随着x-1的个数递增。
  18.                         }
  19.                        

  20.                         System.out.println("");//功能换行
  21.                 }
  22.                 //System.out.println("");
  23.         }
  24. }
复制代码

我这里写了一个可以打印这个,  还有没有其他的方式来打印这个图形。。还有如果打印下面那个图形怎么写、、 请大神们详细写下思路步骤 谢谢 、、
%%%%&
%%%&&&
%%&&&&&
%&&&&&&&
&&&&&&&&&



作者: jibenwujie    时间: 2014-1-5 14:51
楼主你好,这道题需要将图像拆开来进行打印,
我给你编写了代码,
如下:
  1. package com.itheima.test;

  2. public class Tesst04 {

  3.         /**
  4.          * @param args
  5.          */

  6.         public static void print(int n) {
  7.                 // 控制行
  8.                 for (int i = 0; i < n; i++) {
  9.                         // 将一行中的图形拆开, * , & 分为两个循环进行打印
  10.                         for (int j = n - i; j > 0; j--) {
  11.                                 System.out.print("*");
  12.                         }

  13.                         for (int k = 1; k <= 2 * i + 1; k++) {

  14.                                 System.out.print("&");

  15.                         }
  16.                         System.out.println();

  17.                 }

  18.         }

  19.         public static void main(String[] args) {
  20.                 Tesst04.print(5);
  21.         }

  22. }
复制代码




作者: 猎鹰tianya    时间: 2014-1-5 14:56
嘿嘿,第一个图形,我跟你的思路是一样的!不过还可以这么来弄【没有技术含量,但效果一样一样的!】:
  1.                         System.out.println("%%%%*\r\n%%%*&*\r\n%%*&*&*\r\n%*&*&*&*\r\n*&*&*&*&*");
复制代码
第二个图可以这么整:
  1. public class Demo {
  2.         public static void main(String[] args) {

  3.                 int lineNumber = 5;//定义打印的行数
  4.                 for (int i = 1; i <= lineNumber; i++) {//外循环限定行数

  5.                         for (int j = lineNumber - i; j > 0; j--) {//打印%
  6.                                 System.out.print("%");
  7.                         }

  8.                         for (int j = (2 * i - 1); j > 0; j--) {//打印&
  9.                                 System.out.print("&");
  10.                         }

  11.                         System.out.println();//换行
  12.                 }
  13.         }

  14. }
复制代码





作者: yekong262    时间: 2014-1-5 16:44
猎鹰tianya 发表于 2014-1-5 14:56
嘿嘿,第一个图形,我跟你的思路是一样的!不过还可以这么来弄【没有技术含量,但效果一样一样的!】:
第 ...

受教了。。。
作者: yekong262    时间: 2014-1-5 16:46
jibenwujie 发表于 2014-1-5 14:51
楼主你好,这道题需要将图像拆开来进行打印,
我给你编写了代码,
如下:

谢谢。。~1
作者: 黄晓鑫    时间: 2014-1-5 17:36
class Demo{
        public static void main(String[] args){
                for (int x=1;x<5 ;x++ ,System.out.println())
                {
                        for (int y=x;y<=4 ;y++,System.out.print("%") ){}
                        for (int z=(x*2-1);z>0;z--,System.out.print("&")){}
                }
        }
}
作者: 范晓冲    时间: 2014-1-6 16:32
class ForForTest{
                public static void main(String[] args){
                                ForForTest fft=new ForForTest();
                                fft.print();
                }       
                //定义一个函数,可以打印所要求的图形
                public void print(){
                          //定义一个变量row,用于控制行数
                                for(int row=1;row<=5;row++){
                                          //定义一个变量col,用于控制列数
                                                for(int col=row;col<5;col++){
                            System.out.print("%");                                                               
                                                }
                                                //定义一个变量col,用于控制列数
                                                for(int col=0;col<2*row-1;col++){
                                                          System.out.print("&");
                                                }
                                                //没打印完一行,进行换行
                                                System.out.println();
                                }       
                }
}

ForForTest.png (1.25 KB, 下载次数: 3)

输出结果

输出结果





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2