gpt4 book ai didi

java - 为什么你的 switch 语句数据类型不能很长,Java?

转载 作者:IT老高 更新时间:2023-10-28 11:52:31 26 4
gpt4 key购买 nike

这是 Sun's Java tutorials 的摘录:

A switch works with the byte, short, char, and int primitive data types. It also works with enumerated types (discussed in Classes and Inheritance) and a few special classes that "wrap" certain primitive types: Character, Byte, Short, and Integer (discussed in Simple Data Objects).

long 原始数据类型不允许使用一定有充分的理由。有人知道是什么吗?

最佳答案

我认为在某种程度上这可能是基于 switch 的典型使用的任意决定。

一个 switch 本质上可以通过两种方式实现(或者原则上是一种组合):对于少数情况,或者值分布广泛的情况,一个 switch 本质上相当于一个临时的一系列 if变量(被打开的值只能被评估一次)。对于数值上或多或少连续的中等数量的情况,使用一个切换表(Java 中的 TABLESWITCH 指令),从而有效地在表中查找要跳转到的位置。

这些方法中的任何一种原则上都可以使用长值而不是整数。但我认为这可能只是一个实际的决定,以平衡指令集和编译器的复杂性与实际需要:真正需要切换 long 的情况非常少见,以至于不得不重写为可接受的一系列 IF 语句,或以其他方式工作(如果有问题的 long 值非常接近,您可以在 Java 代码中切换 int 结果减去最小值)。

关于java - 为什么你的 switch 语句数据类型不能很长,Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2676210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com