====刚才一个朋友提的问题,已经结帖了、答案出来了、可我还是感到有点不明白、请高手给稍微的 讲 一下 、、谢谢==== j+o =10i循环10次。所以打印的是10*10的一个矩形。每次j多一个,而o少一个。也就是空格多一个,而*少一个 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 for(int i=10;i>0;i--){ for (int j=0; j < 10-i; j++) ----------------------------------------------------------------------------i-- 在这起什么作用 ? for(int i=10;i>0;i--)循环阿不自减怎么会结束循环呢 for(int i=10;i>0;i--){ for (int j=0; j < 10-i; j++) { System.out.print(" ");---------------------------------------------------------两个 for 在一起运行时、是怎样的??我的思路是:先运行第一个for中的 i=10;i>0; 然后再运行第二个for ,最后在运行 i--;。我想不通 i-- 和第二个for 返回什么值给 i-- 。 -----------------------------------------------------------------还有 System.out.print("\n"); 这里面的 \n 是换行吧 ?? 楼上的描述有些问题、、--------------------------------------------------------------------for(int i=10;i>0;i--){ for (int j=0; j < 10-i; j++) { System.out.print(" ");---------------------------------------------------------两个 for 在一起运行时、是怎样的??我的思路是:先运行第一个for中的 i=10;i>0; 然后再运行第二个for ,最后在运行 i--;。我想不通第二个 for 返回什么值给 i-- 。 -----------------------------------------------------------------还有 System.out.print("\n"); 这里面的 \n 是换行吧 ?? 这是我写的。。我以为你懂了啊\n 就是换行大循环里两个小循环for(int i=10;i>0;i--)是大循环,i是行数小循环 for (int j=0; j < 10-i; j++) { System.out.print(" "); }你可以自己代几个数字进去就明白了 你每次把i和j,o的值打出来你就明白了。 flow control 是编程语言里面非常基础的一块,好好看书先理解理解吧,这可是基础啊! 看看我理解的对吗?? -------------------------------------------------------------------------- for(int i=10;i>0;i--){ for (int j=0; j < 10-i; j++) { //当 i=10;j=0;时、j<10-i;也就是 0<10-10 === 0<0;此时返回为 false 也就是在第一行不做任何动作 //当 i=9;j=0;时、j<10-9;也就是 0<10-9 === 0<1;此时返回为 true 现在运行 j++ 也就是在第二行打印一个 j 也就是打印一个 空格 。 //当 i=8;j=1;时、j<10-8;也就是 1<10-8 === 1<2;此时返回为 true 现在运行 j++ 也就是在第三行打印两个 j 也就是打印两个 空格 。以下的依次类推... System.out.print(" "); } for(int o=i;o>0;o--){ //当o=i;i=10 时、o>0,也就是 o=10 > 0 ,此时返回为 true ,也就是在第一行 打印 10 个 * // 当o=i;i=9 时、o>0,也就是 o=9 > 0 ,此时返回为 true ,也就是在第二行 打印 9 个 * 以下的依次类推... System.out.print("*"); } System.out.print("\n"); 又有一个问题:我想要的是: ********* ******** ******* ****** ***** **** *** ** *可我写的:public class fanxing { public static void main(String[] args) { for(int i=10;i>0;i--){ for(int n=i;n<11;n++){ System.out.print("*"); } System.out.print("\n"); } }}结果却是:*******************************************************请高手指教 、、 for(int i=10;i>0;i--){ //此处第一步i=10 for(int n=i;n<11;n++){ //此处第一步i=10 循环一次之后i=11不满足i<11只打印一个“*” System.out.print("*"); } System.out.print("\n"); } }}以此类推打印结果就是这样了******************************************************* public class TestIt{ public static void main(String[] args) { for(int i=10;i>0;i--) { for(int j=0;j<i;j++) System.out.print("*"); System.out.print("\n"); } } }图:******************************************************* FTDZS(范特西) :---------------------------------------------------------------------------你理解的好像和我的不一样:我的理解是:for(int i=10;i>0;i--){ //此处第一步i=10;所以 i>0 ;为true、执行下一行。 for(int n=i;n<11;n++){ //此处第一步i=10 ;n=i; n=10;n<11;10<11;此时为 true、执行下一行 打印一个 * ;然后 n++ (待会就打印2个*了);再执行i-- ;此时 i 就是9 了 ;然后依次类推.... System.out.print("*");-------------------------------------------------------------------------for(int i=10;i>0;i--){ //此处第一步i=10 for(int n=i;n<11;n++){ //此处第一步i=10 循环一次之后i=11不满足i<11只打印一个“*” System.out.print("*"); } System.out.print("\n"); } }}以此类推打印结果就是这样了******************************************************* 那这个图呢?----------------------------------------------------------------- * ** *** **** ***** ****** ******* ******** *******************--------------------------代码:public class TestIt{ public static void main(String[] args) { int times=10; //可随意更改循环次数 for(int i=times;i>0;i--) { for(int j=1;j<i;j++) System.out.print(" "); for(int k=-1;k<times-i;k++) System.out.print("*"); System.out.println(); } } } Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 关于updateui 请教:类的继承和合成 阿拉伯语在文件中的显示顺序问题 java GUI里和JTextfield以及loop 有关的问题 关于GridLayout的问题(重要) SQL Server 2000 权限问题! 急, 在线等! 学习方法提问 求助:关于静态变量的实例化 如何删调一个文件!在线等待,急! 线程中的键盘监听器怎么不好使了? 我要付费请一位高手当老师!
for (int j=0; j < 10-i; j++) ----------------------------------------------------------------------------i-- 在这起什么作用 ?
循环阿
不自减怎么会结束循环呢
for (int j=0; j < 10-i; j++) {
System.out.print(" ");
---------------------------------------------------------两个 for 在一起运行时、是怎样的??我的思路是:先运行第一个for中的 i=10;i>0; 然后再运行第二个for ,最后在运行 i--;。我想不通 i-- 和第二个for 返回什么值给 i-- 。
-----------------------------------------------------------------还有 System.out.print("\n"); 这里面的 \n 是换行吧 ??
--------------------------------------------------------------------
for(int i=10;i>0;i--){
for (int j=0; j < 10-i; j++) {
System.out.print(" ");
---------------------------------------------------------两个 for 在一起运行时、是怎样的??我的思路是:先运行第一个for中的 i=10;i>0; 然后再运行第二个for ,最后在运行 i--;。我想不通第二个 for 返回什么值给 i-- 。
-----------------------------------------------------------------还有 System.out.print("\n"); 这里面的 \n 是换行吧 ??
\n 就是换行
大循环里两个小循环
for(int i=10;i>0;i--)是大循环,i是行数小循环 for (int j=0; j < 10-i; j++) {
System.out.print(" ");
}
你可以自己代几个数字进去就明白了
--------------------------------------------------------------------------
for(int i=10;i>0;i--){
for (int j=0; j < 10-i; j++) {
//当 i=10;j=0;时、j<10-i;也就是 0<10-10 === 0<0;此时返回为 false 也就是在第一行不做任何动作
//当 i=9;j=0;时、j<10-9;也就是 0<10-9 === 0<1;此时返回为 true 现在运行 j++ 也就是在第二行打印一个 j 也就是打印一个 空格 。
//当 i=8;j=1;时、j<10-8;也就是 1<10-8 === 1<2;此时返回为 true 现在运行 j++ 也就是在第三行打印两个 j 也就是打印两个 空格 。以下的依次类推...
System.out.print(" ");
}
for(int o=i;o>0;o--){
//当o=i;i=10 时、o>0,也就是 o=10 > 0 ,此时返回为 true ,也就是在第一行 打印 10 个 *
// 当o=i;i=9 时、o>0,也就是 o=9 > 0 ,此时返回为 true ,也就是在第二行 打印 9 个 * 以下的依次类推...
System.out.print("*");
}
System.out.print("\n");
*********
********
*******
******
*****
****
***
**
*可我写的:public class fanxing { public static void main(String[] args) {
for(int i=10;i>0;i--){
for(int n=i;n<11;n++){
System.out.print("*");
}
System.out.print("\n");
}
}
}结果却是:*
**
***
****
*****
******
*******
********
*********
**********
请高手指教 、、
for(int n=i;n<11;n++){ //此处第一步i=10 循环一次之后i=11不满足i<11只打印一个“*” System.out.print("*");
}
System.out.print("\n");
}
}
}
以此类推打印结果就是这样了
*
**
***
****
*****
******
*******
********
*********
**********
public static void main(String[] args) {
for(int i=10;i>0;i--)
{
for(int j=0;j<i;j++)
System.out.print("*");
System.out.print("\n");
}
}
}
图:
**********
*********
********
*******
******
*****
****
***
**
*
---------------------------------------------------------------------------
你理解的好像和我的不一样:
我的理解是:
for(int i=10;i>0;i--){ //此处第一步i=10;所以 i>0 ;为true、执行下一行。
for(int n=i;n<11;n++){ //此处第一步i=10 ;n=i; n=10;n<11;10<11;此时为 true、执行下一行 打印一个 * ;然后 n++ (待会就打印2个*了);再执行i-- ;此时 i 就是9 了 ;然后依次类推....
System.out.print("*");-------------------------------------------------------------------------
for(int i=10;i>0;i--){ //此处第一步i=10
for(int n=i;n<11;n++){ //此处第一步i=10 循环一次之后i=11不满足i<11只打印一个“*” System.out.print("*");
}
System.out.print("\n");
}
}
}
以此类推打印结果就是这样了
*
**
***
****
*****
******
*******
********
*********
**********
----------------------------------------------------------------- *
**
***
****
*****
******
*******
********
*********
**********
--------------------------
代码:
public class TestIt{
public static void main(String[] args) {
int times=10; //可随意更改循环次数
for(int i=times;i>0;i--)
{
for(int j=1;j<i;j++)
System.out.print(" ");
for(int k=-1;k<times-i;k++)
System.out.print("*");
System.out.println();
}
}
}