java编写99乘法表有个java编程题:请分别用for、whi
有个编程题:请分别用for、while、do…while三种循环打印出九九乘法表。for语句没错,程序如下:classContinueDemo{publicstaticvoidmain(String[]args){ (inti=1;i<10;i++){for(intj=1;j<10;j++){if(j>i)//三角形乘法表,换行判断{ intln("");continueouter;} int(""+i+"*"+j+"="+(i*j));}}}}但while,do-while都有问题。while语句程序如
楼主在写变量i加一变化的位置不对,程序是顺序执行的,楼主的程序每次都是在if条件举出跳出内层循环到外层循环的,所以每次都不能让i变量加一变化,而每次跳出内层循环时也没有将变量j重新置1,下面是改好的程序classContinueDemo1{publicstaticvoidmain(String[]args){inti=1,j=1; (i<10){while(j<10){if(j>i)//三角形乘法表,换行判断{ intln("");j=1;//跳出内层循环时变量j重新置1i++;//跳出内层循环时变量i加一操作;continueouter;} int(""+i+"*"+j+"="+(i*j));j++;}//i++;//每次内层循环都是在if条件句中跳出的,所以这里的变量改变是多余的,我将其注释掉了。}}}楼主的do-while循环的错误较多,下面是我改正的程序,并在程序的注释中说明楼主源程序的错误之处classContinueDemo2{publicstaticvoidmain(String[]args){inti=1,j=1;//这里的两个变量的初始值都应该为1,楼主用的是0 {//j++;//变量的改变不应该在这里,更不应该外循环的变量成为j,应该是i,这个根据楼主下面的if条件句的条件j〉i判定的do{//i++;//内层循环的改变也不应该在这里,更不应该内层循环的变量成为i,应该是j,这个根据楼主下面的if条件句的条件j〉i判定的if(j>i)//三角形乘法表,换行判断{ intln("");j=1;//变量j重新置1i++;//变量i加一操作continueouter;} int(""+i+"*"+j+"="+(i*j));j++;//变量j加一操作}while(j<10);//内层循环j的循环条件楼主写的是while(i<10),这样正好与楼主的if条件句相反了}while(i<10);//外层循环i的循环条件楼主写的是while(j<10),这样正好与楼主的if条件句相反了}这样写不知道楼主能否看懂,愿你进步