class mythread1 extends Thread
{
int i=1,j=1;
public void run()
{
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
{
System.out.print(i+"X"+j+"="+i*j+" ");
try{
sleep(1000);
}
catch(InterruptedException e){}
}
System.out.println();
}
}
}
public class mythread {
public static void main (String []args)
{
mythread1 my=new mythread1();
my.start();
}
}为什么,不是一个一个隔一秒输出,而是一行输出呢??
{
int i=1,j=1;
public void run()
{
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
{
System.out.print(i+"X"+j+"="+i*j+" ");
try{
sleep(1000);
}
catch(InterruptedException e){}
}
System.out.println();
}
}
}
public class mythread {
public static void main (String []args)
{
mythread1 my=new mythread1();
my.start();
}
}为什么,不是一个一个隔一秒输出,而是一行输出呢??
解决方案 »
- 关于办公系统中的邮件功能数据库设计问题
- jsp中树状结构如何写?
- 有什么必要的么?
- ibatis参数设置的问题,困扰了很长时间了
- internal compiler error:null 这是什么错 明天就交作业了 怎么半
- j2ee安装的问题,请赐教
- java在Linux环境中获得Corba对象出错,大家帮帮我!
- 启动J2EE服务器错误!!!怎么解决???
- 已经装了jdk 1.4,现在装javabean development kit (BDK1.1)安装过程中有一步是choose virtual machine ,java虚拟机
- 网站部署完成后,仅服务器可以访问,其他局域网内的电脑不能访问
- OGNL的小问题!!求大神!!!
- java十宗罪
那sleep方法放到外层循环中。
那你就可以这样子做,你先把乘法得到的结果用一个变量来接收,然后只是输出运行的部分如:1*2=
就输出这么多,记得不要换行;
然后使用线程休眠一秒Thread(1000)然后再System.out.print(前面变量所存的那个结果);此时换行;
这样子才能实现你所需要的效果,这句其实就是将你的程序与结果分开。而你现在的代码是:使用线程休眠一秒Thread(1000)就执行整句 System.out.print(i+"X"+j+"="+i*j+" ");去了,连结果都一起输出出来了,所以 导致不能实现你所需的效果!
那你就可以这样子做,你先把乘法得到的结果用一个变量来接收,然后只是输出运行的部分如:1*2=
就输出这么多,记得不要换行;
然后使用线程休眠一秒Thread(1000)然后再System.out.print(前面变量所存的那个结果);此时换行;
这样子才能实现你所需要的效果,这句其实就是将你的程序与结果分开。而你现在的代码是:使用线程休眠一秒Thread(1000)就执行整句 System.out.print(i+"X"+j+"="+i*j+" ");去了,连结果都一起输出出来了,所以 导致不能实现你所需的效果!
public void run()
{
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
{
System.out.print(i+"X"+j+"="+i*j+" ");
try{
sleep(1000);
}catch(InterruptedException e){}
}
System.out.println();
}
}
改成
int i=1,j=1;
public void run()
{
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
{
System.out.print(i+"X"+j+"="+i*j+" ");
}
try{
sleep(1000);
}catch(InterruptedException e){}
System.out.println();
}
}睡眠的地方不对