In
computer science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
, the term range may refer to one of three things:
# The possible values that may be stored in a
variable.
# The upper and lower bounds of an
array.
# An alternative to
iterator.
Range of a variable
The range of a variable is given as the set of possible values that that variable can hold. In the case of an integer, the variable definition is restricted to whole numbers only, and the range will cover every number within its range (including the maximum and minimum). For example, the range of a
signed 16-bit
16-bit microcomputers are microcomputers that use 16-bit microprocessors.
A 16-bit register can store 216 different values. The range of integer values that can be stored in 16 bits depends on the integer representation used. With the two ...
integer
An integer is the number zero (0), a positive natural number (1, 2, 3, ...), or the negation of a positive natural number (−1, −2, −3, ...). The negations or additive inverses of the positive natural numbers are referred to as negative in ...
variable is all the integers from −32,768 to +32,767.
Range of an array
When an array is numerically indexed, its range is the upper and lower bound of the array. Depending on the environment, a warning, a
fatal exception, or unpredictable behavior will occur if the program attempts to access an array element that is outside the range. In some
programming languages, such as
C, arrays have a fixed lower bound (zero) and will contain data at each position up to the upper bound (so an array with 5 elements will have a range of 0 to 4). In others, such as
PHP, an array may have holes where no element is defined, and therefore an array with a range of 0 to 4 will have ''up to'' 5 elements (and a minimum of 2).
Range as an alternative to iterator
Another meaning of ''range'' in computer science is an alternative to
iterator. When used in this sense, range is defined as "a pair of begin/end iterators packed together".
It is argued
that "Ranges are a superior abstraction" (compared to iterators) for several reasons, including better safety.
In particular, such ranges are supported in
C++20,
Boost C++ Libraries and the
D standard library.
Range as a data type

A data type for ranges can be implemented using
generics.
Example in
C#.
public record Range(T Start, T End) where T : IComparable;
Example in
Kotlin.
data class Range>(val start: T, val end: T)
Example in
PHP.
readonly class Range
Example in
Python.
from dataclasses import dataclass
@dataclass
class Range
start: T
end: T
Rust has a built-in range struct in the standard library in .
Range as a operator
Rust has the and operators.
let heartwarming = "heartwarming!".to_string();
let warm = &heartwarming ..9
Zig also has the operator.
// To iterate over consecutive integers, use the range syntax.
var sum: usize = 0;
for (0..5) , i,
As does
C#,
string items[] = ["one","two","three","four"];
string first_three_items[] = items[0..2];
F Sharp (programming_language), F#,
[1..4]
// Outputs: [1; 2; 3; 4]
Kotlin,
for (i in 1..5) print(i)
and
Perl.
for( 1..5)
Python and
PHP does not have any range operator but they do have a function.
See also
*
Interval
References
Articles with example C Sharp code
Articles with example PHP code
Articles with example Python (programming language) code
Articles with example Rust code
Arrays
Programming constructs
{{Compu-prog-stub