分享

【java】关于参数传递的两个较火的题

 心本心123 2022-08-21 发布于广东

题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;
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多