本txt致力于解决一些打印特殊图形的题目。尤其是,对于具备行和列特征的类型。只要用到的就是内外嵌套循环的组合控制。请认真explore it吧。
准备条件:首先,这类行列问题,往往,是需要内外嵌套循环才能够解决。所以,学习点语句嵌套的知识。
1.语句嵌套:其实,就是语句当中还有语句。
2.for循环语句当中有if判断语句,这也叫语句嵌套。
3.循环嵌套比较经典。主要也就是解决这方面的理解和应用问题。
举一小例子:循环嵌套:
for (int x = 0;x<3;x++){
for(int y=0;y<3;y++){
System.out.print("*");
}
}
这个语句执行结果是:打印12个*
在头脑中分析这个过程。
看代码例子:
for(int x =0;x<3;x++) {
for (int y =0 ;y<4;y++){
System.out.print("*");
}
System.out.println();//只有一个作用:换行。
}
执行结果:****
****
****
(个人收获)打印长方形:外循环控制的是行,内循环控制的是列,每一行的列数,也就是一行中元素的个数。
me: 这个是一种思想。明白这个思想,可以解决好多的问题。下面进行相关的应用性质的练习。请好好的explore it 吧。
<1>打印
*****
****
***
**
*
评评分析:从本质上去看,这个打印结果,有5行,有5列。所以,这是个行列问题。采用语句嵌套解决。
5行,说明可以写出来,外循环有5次循环。无论你是使用--系列,还是++系列,各自对应2个,结果总共4个方案。这都没啥差别。都是控制5次外循环就ok啦。
列的元素从5,4,3,一次递减。这个内循环打印个数的规律。有规律就好办。
看自己写下的代码:
class ForForDown{
public static void main(String[] args){
for (int x=0;x<5;x++){
for(int y=0;y<5-x;y++){
System.out.print("*");
}
System.out.println();
}
System.out.println("---------------------------");
for (int x1=0;x1<5;x1++){
for (int y1=x1;y1<5;y1++){
System.out.print("*");
}
System.out.println();
}
System.out.println("----------------------------");
for (int x2=5;x2>0;x2--){
for(int y2=0;y2<x2;y2++){
System.out.print("*");
}
System.out.println();
}
System.out.println("----------------------------");
for (int x3=5;x3>0;x3--){
for(int y3=5-x3;y3<5;y3++){
System.out.print("*");
}
System.out.println();
}
}
}
<2> 打印:
*
**
***
****
*****
看自己写的代码:
class ForForUp{
public static void main(String[] args){
for (int x =0;x<5;x++){
for (int y=5-x;y<=5;y++){
System.out.print("*");
}
System.out.println();
}
System.out.println("------------------------");
for (int x1 = 0;x1<5;x1++){
for (int y1=0;y1<=x1;y1++){
System.out.print("*");
}
System.out.println();
}
System.out.println("------------------------");
for (int x2=5;x2>0;x2--){
for (int y2=x2;y2<=5;y2++){
System.out.print("*");
}
System.out.println();
}
System.out.println("------------------------");
for(int x3=5;x3>0;x3--){
for (int y3=0;y3<=5-x3;y3++){
System.out.print("*");
}
System.out.println();
}
}
}
<3>打印:
既然学习了这个,那么,开始练习一个题目: 打印:
*
* *
* * *
* * * *
* * * * *
看我写的代码:
class Sanjiaoxing{
public static void main(String[] args){
System.out.println("Game begin");
for (int x1=0;x1<5;x1++){
for (int x2=0;x2<4-x1;x2++){
System.out.print(" ");
}
for(int x3=0;x3<=x1;x3++){
System.out.print("* ");
}
System.out.println();
}
}
}
看本质思想:外循环控制行,内循环控制列元素。元素本质。
<4>
思考:
打印:9*9乘法表。
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
……
1*9=9 2*9=18 3*9=24 ……
看我的代码,经典呀:
class Jiujiu{
public static void main(String[] args){
System.out.println("Game begin");
for (int x1=1;x1<=9;x1++){
for (int x2=1;x2<=x1;x2++){
System.out.print(x2+"*"+x1+"="+x2*x1+"\t");
}
System.out.println();
}
}
}
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
评评:注意,对于\t,表格形式,重新的理解。以前的理解有误。
补充一下子:
打印菱形。(question added time:2011/12/16/Friday/Night)
数组采用选择排序法,本质上就是“行列思想”,在头脑中形象表示(用*号图解法最好)。(question added time:2012/01/06/Friday/Night)