黑马程序员技术交流社区

标题: 来解答一下疑惑,关于循环 [打印本页]

作者: 分解式    时间: 2014-2-11 18:42
标题: 来解答一下疑惑,关于循环
  //While 类,描述9*9乘法表
public class While
{
public static void main(String args[])
{
//定义整型变量
int i=9;
int j=9;
//当变量i大于或等于1的时候执行循环
while(i>=1)
{
while((j<=1)&&(j>0))
{
System.out.println(i+"*"+j+"="+j*j+"");
j--;
}
System.out.println("");
i--;
//把每次循环后的j值赋值给i
j=i;
}
}
}

程序是这样的,其实很简单,可是我不太清楚具体是怎么一步一步走的
作者: kakaxi117    时间: 2014-2-11 19:10
楼主这不是九九乘法表吧,内层while语句的循环体只有在j=1时执行了一次,最终结果只打印了1*1=1。
这样写就能打印九九乘法表了:
public class While
{
         public static void main(String args[])
         {
                 //定义整型变量
                int i=9;
                 int j=9;
                 //当变量i大于或等于1的时候执行循环
                while(i>=1)
                 {
                 while(j>0)//等变量j大于0是执行循环体。
                         {
                                System.out.print(i+"*"+j+"="+j*j+"\t");
                                 j--;
                         }
                                System.out.println();
                                 i--;
                                //把每次循环后的j值赋值给i
                                 j=i;
                 }
        }
}

作者: 2424308    时间: 2014-2-12 12:59
死循环了吧
作者: mtlmzb    时间: 2014-2-12 22:24
using System;
namespace _99乘法表
{
    class Program
    {
        static void Main(string[] args)
        {
            ChenFaBiao();
        }

        //C#九九乘法表的算法实现

        public static void ChenFaBiao()
        {
            string t = string.Empty;
            for (int i = 1; i < 10; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    t = string.Format("{0}×{1}={2} ", j, i, (j * i));
                    Console.Write(t);

                    if (j * i < 10)
                        Console.Write(" ");
                    if (i == j)
                        Console.Write("\n");
                }
            }
        }
    }
}

作者: Amorvos    时间: 2014-2-16 23:37
9X9乘法表你是不明白具体实现吗?如果是的话,你的代码有问题,我给你写了一下代码,每句代码给了注释,你看是否明白
  1. public class While {
  2.         public static void main(String args[]) {
  3.                
  4.                 for( int i =  1 ; i < 10 ; i ++ ) //遍历乘法表每一行
  5.                 {
  6.                         for( int j = 1 ; j <= i ; j ++ ) //遍历乘法表每行的元素
  7.                         {
  8.                                 System.out.print( i  + "*" + j + "=" + i * j + " "); //输出每个元素
  9.                         }       
  10.                         System.out.println(); //换行
  11.                 }
  12.                
  13.         }
  14. }
复制代码






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