本帖最后由 傻瓜一点红 于 2013-5-2 09:14 编辑
之前在论坛了看到了如下这道题,试着去做了一下,用函数调用的方法,结果遇到一个纠结的问题- /*效果如下:随便输入一自然数2,打印出如下:
- * * * *
- * 1 2 *
- * 3 4 *
- * * * *
- 如输入3,打印效果如下:
- * * * * *
- * 7 8 9 *
- * 6 1 2 *
- * 5 4 3 *
- * * * * *
- */
- import java.util.Scanner;
- public class test
- {
- public static void main(String[] args)
- {
- Scanner in=new Scanner(System.in);//创建一个输入接收对象;
- System.out.println("请输入你需要的数字(需正整数):");
- int number=in.nextInt();
- int n=number+2;//n代表数组长度变量
- String arr[][]=getPrint(n);
- /*if(n==1)
- arr[1][1]="1";*/
- for(int i=0;i<n;i++)
- {
- for(int j=0;j<n;j++)
- {
- System.out.print(arr[i][j]+"\t");
- }
- System.out.println("\n");
- }
- }
- public static String[][] getPrint(int n) //定义一个输出*号的共用函数
- {
- String arr[][]=new String[n][n];
- for(int i=0;i<n;i++)
- {
- for(int j=0;j<n;j++)
- {
- arr[i][j]="*";
- }
- }
- return arr;
- }
- }
复制代码 以上代码中定义了一个共用函数getPrint,然后返回这个二维数组,结果是在主函数main调用的时候,只要加上个if语句,主函数下面的for循环语句就全部没用了:L,这是怎么回事,只有注释掉if语句,下面for循环才起作用,求大虾指教?
备注:不管if语句是采用如上形式,还是采用{}把for循环包含在里面,for都不起作用,意思就是只有有if语句,for循环就不起作用。 |