Как уже отмечали другие, Java for-each перебирает массив или коллекцию.«3» - это не массив или коллекция, это одно значение.Если Java допускает предложенную вами конструкцию, единственной последовательной реализацией будет «итерация» по одному значению 3. То есть:
for (int i : 3) { System.out.println(i); }
будет выводить:
3
Что не кажется очень полезным, и, возможно, именно поэтому они не реализовали его.
Ваш вопрос предполагает, что одно значение, такое как "3", подразумевает диапазон.Но почему вы предполагаете {0,1,2,3}?Почему бы не {1,2,3}?Или {-3, -2, -1, 0, 1, 2, 3}?Или {0,5, 1,0, 1,5, 2,0, 2,5, 3}?Или буквально бесконечное число других возможных вариантов.
Чтобы сделать это конкретным, вам нужно указать начальное значение, конечное значение и приращение.Хм, может быть, мы могли бы придумать такую запись:
for (int i=0,3,1)
Но это все еще неоднозначно.Непонятно, хотим ли мы продолжать до i == 3 или до последнего значения <3.И нам, вероятно, нужно отличать приращение плюс от вложения минус.Так как насчет этого, более гибкая запись: </p>
for (int i=0; i<=3; i=i+1)
Ой, подождите, это уже поддерживается.: -)