题1:在method方法被调用后,仅打印出a=100,b=200,请写出method方法代码。
public class Test {
public static void main(String[] args) {
int a = 10;
int b = 10;
method(a,b);//需要在method方法被调用后,仅打印出a=100,b=200,请写出method方法代码
System.out.println('a='+a);
System.out.println('b='+b);
}
//代码编写
}
方法1: 巧妙解决问题
public static void method(int a,int b) {
a = a*10;
b = b*20;
System.out.println(a);
System.out.println(b);
System.exit(0);//直接退出程序
}
方法2: 涉及了打印流,直接输出
import java.io.PrintStream;
public static void method(int a,int b) {
// 打印流
PrintStream ps = new PrintStream(System.out) {
@Override
public void println(String x) {
if('a=10'.equals(x)) {
x='a=100';
}
else if('b=10'.equals(x)){
x='b=200';
}
super.println(x);
}
};
System.setOut(ps);
}
题2:定义一个int型的数组:int[ ] arr = new int[ ]{12,3,3,34,56,77,432}; 让数组的每个位置上的值去除以首位置的元素,得到的结果,作为该位置上的新值。遍历新的数组。
错误写法(经典的错误,标准的零分–[/狗头])
for(int i= 0;i < arr.length;i++){
arr[i] = arr[i] / arr[0];
}
原因: 首先第一位除以第一位变为1,后面的数据再除以首位仍为其自身。
正确写法1(从后往前遍历):
for(int i = arr.length – 1;i >= 0;i--){
arr[i] = arr[i] / arr[0];
}
正确写法2:
int temp = arr[0];
for(int i= 0;i < arr.length;i++){
arr[i] = arr[i] / temp;
}
|