FunctionTest

package java基础知识.小结与练习;

/*
函数的应用

自定义函数的时候要明确两点:
	1:明确结果 对应的就是明确返回值的类
	2:明确参数 就是这个函数需不需要有未知内容参与,如果有,就要定义变量。
		明确参数的类型。
		明确参数的个数。
*/
class FunctionTest 
{
	//主函数测试自定义函数是否正确
	public static void main(String[] args) 
	{
		int a = 3,b = 4;
		System.out.println("a+b="+sum(a,b));

		System.out.println("----------------------");
		System.out.println("a和b中较大的数是:"+max(a,b));

		System.out.println("----------------------");
		/*
		for(int x=1; x<=3; x++)
		{
			for(int y=1; y<=x; y++)
			{
				System.out.print(y+"*"+x+"="+x*y+"\t");
			}
			System.out.println();
		}

		System.out.println("----------------------");

		for(int x=1; x<=9; x++)
		{
			for(int y=1; y<=x; y++)
			{
				System.out.print(y+"*"+x+"="+x*y+"\t");
			}
			System.out.println();
		}
		*/
		printXX(3);

		System.out.println("----------------------");

		printXX(9);

		System.out.println("----------------------");
		
		//练习:比较三个数的大小,并返回最大的值。
		System.out.println(max2(10,20,15));
		
	}

	/*
	需求:求两个整数的和

	明确:
		1:明确结果 整数,int
		2:明确参数 加数和被加数不明确,也就是未知的,需要定义两个变量,而且都是int类型。
	*/
	public static int sum(int a,int b)
	{
		return a + b;
	}

	/*
	需求:比较两个数的大小,返回较大的值。

	明确:
		1:明确结果 int
		2:明确参数 两个未知内容
	*/
	public static int max(int a,int b)
	{
		/*
		int z;
		if(a>b)
		{
			z = a;
		}
		else
		{
			z = b;
		}
		return z;
		*/
		
		/*
		if(a>b)
		{
			return a;
		}
		else 
		{
			return b;
		}
		*/
		
		//int z = a>b?a:b;
		//return z;

		return a>b?a:b;
	}

	/*
	需求:打印xx乘法表(xx在1-9之间)

	明确:
		1:明确结果 直接在控制台输出 所以返回类型 void
		2:明确参数 xx乘法表,所以声明一个变量num
	*/
	public static void printXX(int num)
	{
		for(int x=1; x<=num; x++)
		{
			for(int y=1; y<=x; y++)
			{
				System.out.print(y+"*"+x+"="+x*y+"\t");
			}
			System.out.println();
		}
	}

	/*
	需求:比较三个数的大小,并返回最大的值。

	明确:
		1:int
		2:几个未知数:3个
	*/
	public static int max2(int a,int b,int c)
	{
		/*
		if(a>b)
		{
			if(a>c)
			{
				return a;			
			}
			else
			{
				return c;
			}
		}
		else
		{
			if(b>c)
			{
				return b;			
			}
			else
			{
				return c;
			}
		}*/

		int temp = a>b?a:b;
		return temp>c?temp:c;
		//不推荐,阅读性较差。 return a>b?(a>c?a:c):(b>c?b:c);
	}
}

在ArkTS里,`const test=()=>{}` 和 `function test(){}` 存在以下差异: ### 函数定义方式 - `const test=()=>{}` 采用箭头函数的形式定义函数,这是一种简洁的函数定义语法,适合简单的函数逻辑。 - `function test(){}` 是传统的函数声明方式,在各类 JavaScript 环境中广泛使用。 ### 作用域与变量提升 在 JavaScript 里,传统函数声明存在变量提升的特性,也就是在函数声明之前就能调用该函数。不过,ArkTS 遵循 ES6 规范,变量提升的规则有所不同。 在 JavaScript 里变量提升示例如下: ```javascript function test() { temp = "test"; console.log(temp); // will print test. var temp; } ``` 在 ArkTS 里,`const` 声明的变量不存在变量提升。使用 `const test=()=>{}` 定义函数时,在声明之前调用会引发引用错误;而使用 `function test(){}` 定义函数,可在函数声明之前调用。 ### 上下文绑定 - 箭头函数 `const test=()=>{}` 不会创建自己的 `this`、`arguments` 等上下文,它会捕获其所在上下文的 `this` 值。 - 传统函数声明 `function test(){}` 会创建自己的 `this` 上下文,`this` 的值取决于函数的调用方式。 ### 语法灵活性 - 箭头函数 `const test=()=>{}` 的语法更加简洁,适合简单的单行函数。例如: ```typescript const add = (a, b) => a + b; ``` - 传统函数声明 `function test(){}` 语法相对复杂,但能定义函数名,支持函数的递归调用等复杂操作。 ### 重复声明 在 ArkTS 遵循 ES6 规范,`const` 不允许在相同作用域内重复声明一个变量。使用 `const test=()=>{}` 定义函数后,不能在同一作用域内再次声明 `test`;而传统函数声明在某些情况下可以重复声明,后面的声明会覆盖前面的声明。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值