方法:
public static void column_check(int form[][],boolean finnal_result)
{
for (int zong=0;zong<form.length ;zong++)
{
sum =0;
for(int heng=0;heng<form[zong].length;heng++)
{
sum +=form[zong][heng];
};
if (sum>2)
{
System.out.println(“第”+(zong+1)+”行出错”);
finnal_result=false;
System.out.println(finnal_result);
}
else{};
};
};
public static void print_result(boolean finnal_result)
{
if (finnal_result)
{
System.out.println(“success”);
}else{};
}
运行的部分是这样子的:
public class Main_test
{
public static void main(String[] args)
{
int [][] i1=
{
{1,1,1},
{1,1,1},
{1,1,1}
};
boolean b1=true;
The_test_of_test37.printform(i1);
The_test_of_test37.column_check(i1,b1);
System.out.println(b1);
The_test_of_test37.print_result(b1);
}
}
结果是这样的:
| 1 || 1 || 1 |
| 1 || 1 || 1 |
| 1 || 1 || 1 |
第1行出错
false
第2行出错
false
第3行出错
false
true
success
public static void column_check(int form[][],boolean finnal_result)
{
for (int zong=0;zong<form.length ;zong++)
{
sum =0;
for(int heng=0;heng<form[zong].length;heng++)
{
sum +=form[zong][heng];
};
if (sum>2)
{
System.out.println(“第”+(zong+1)+”行出错”);
finnal_result=false;
System.out.println(finnal_result);
}
else{};
};
};
public static void print_result(boolean finnal_result)
{
if (finnal_result)
{
System.out.println(“success”);
}else{};
}
运行的部分是这样子的:
public class Main_test
{
public static void main(String[] args)
{
int [][] i1=
{
{1,1,1},
{1,1,1},
{1,1,1}
};
boolean b1=true;
The_test_of_test37.printform(i1);
The_test_of_test37.column_check(i1,b1);
System.out.println(b1);
The_test_of_test37.print_result(b1);
}
}
结果是这样的:
| 1 || 1 || 1 |
| 1 || 1 || 1 |
| 1 || 1 || 1 |
第1行出错
false
第2行出错
false
第3行出错
false
true
success
解决方案
10
public static void column_check(int form[][],boolean finnal_result)
boolean 是基本数据类型,按值传递,方法体里的操作不会影响源变量的值
关于按值传递和按引用传递
http://blog.csdn.net/zw_2011/article/details/6431448
boolean 是基本数据类型,按值传递,方法体里的操作不会影响源变量的值
关于按值传递和按引用传递
http://blog.csdn.net/zw_2011/article/details/6431448
40
java中只存在值传递
java中方法参数的使用情况有三点要注意:
①.一个方法不能修改一个基本数据类型的参数(数值型,布尔型等)
②.一个方法可以改变一个对象的参数
③.一个方法不能让对象参数引用一个新的对象
回到问题,值未发生改变的原因是原因是①。你要使变量的值改变应该使用②。可以构造一个类的对象,在对象里赋值即可。
java中方法参数的使用情况有三点要注意:
①.一个方法不能修改一个基本数据类型的参数(数值型,布尔型等)
②.一个方法可以改变一个对象的参数
③.一个方法不能让对象参数引用一个新的对象
回到问题,值未发生改变的原因是原因是①。你要使变量的值改变应该使用②。可以构造一个类的对象,在对象里赋值即可。
public class TestSwap { public static void swap(DataSwap d){ int temp = d.a; d.a = d.b; d.b = temp; } public static void main(String[] args) { DataSwap ds = new DataSwap(); ds.a = 10; ds.b = 30; swap(ds); System.out.println(ds); } } class DataSwap{ public int a; public int b; @Override public String toString() { return "DataSwap [a=" + a + ", b=" + b + "]"; } }
给你一个可以交换两个值的例子,体会下。