2015-04-28 4 views
0

Я пытаюсь вывести массивы с помощью расширенного цикла. Я хочу, чтобы он был напечатан как;inested for loop in java

a[0] = 5, a[1] = 8, ... and so on. 

Это мой код;

int[] a = {5, 8, 10, 24, 45}; 

     for(int i=0 ;i <= 4; i++) { 
      for(int enhancedfor : a) { 
       System.out.print("a[" + i + "] = " + enhancedfor + ", "); 
} 
} 

Я на самом деле хочу, как только он выводит значение A [0], вместо того, чтобы снова идти по одной петле, она должна идти в первую для заявления, а затем второй ...

Любая помощь ребята ?

+0

Это означает, что на самом деле вы не хотите, чтобы в вашем внешнем цикле была петля. Петли предназначены для повторения действий. Если вы хотите остановиться после одного действия, вы не используете цикл. – RealSkeptic

ответ

1

Если вы хотите напечатать

a[0] = 5, a[1] = 8, ... and so on. 

Тогда вам не нужно внутреннее loop.Just сделать

for(int i=0 ;i <= 4; i++) 
    System.out.print("a[" + i + "] = " + a[i]+ ", "); 
1

Это не возможно найти настоящий индекс в расширенной цикл (существуют обходные пути но в целом это не стоит). В любом случае, у вас в настоящее время две петли, в то время как на самом деле это должно быть одно. Таким образом, вы должны выбрать между обычным циклом и использованием индекса, или с помощью расширенного цикла и сброса индекса.

Так как

int[] a = {5, 8, 10, 24, 45}; 
for(int i = 0; i < 5; i++) { 
    System.out.print("a[" + i + "] = " + a[i] + ", "); 
} 

или

int[] a = {5, 8, 10, 24, 45}; 
for(int i : a) { 
    System.out.print(i + ", "); 
} 

Если вы действительно, действительно хотите, вы можете ввести переменную, которую приращение при каждой печати таким образом, что вы можете напечатать текущий индекс.

0
  1. Существует способ, который может использоваться для вывода ответа. Смотрите код:

    Integer[] a = {5, 8, 10, 24, 25}; 
    
    for(int loop:a){ 
        System.out.print("a[" + Arrays.asList(a).indexOf(loop) +"] = " + loop + ", "); 
    } 
    

    Но для этого, чтобы работать только импортировать java.util.Arrays.
    Попробуйте.

  2. Теперь есть и другой способ, чтобы получить желаемый результат с использованием усовершенствован для цикла:

    int[] a = {5, 8, 10, 24, 45}; 
    int c, i; 
    c = i = a.length; 
    
    for (int temp:a) { 
        int x = c - i; 
        System.out.print("a[" + x +"] = " + temp + ", "); 
        i -= 1; 
    } 
    

Это должно сделать это. Он будет использовать функцию длины массива и использовать ее для удобства.

+3

Это будет работать, только если массив имеет разные записи – SamYonnou

0
public class Forloop { 

    public static void main(String[] args) { 
     // TODO code application logic here 
     int fl=0,sl=0; 

     for(int i =0;i<=3;i++) 
     { 
      fl=fl+i; 

      for(int k=0;k<=2;k++) 
      { 
       sl=sl+k; 
      } 
     } 
     System.out.println("Sum="+(fl+sl)); 
    } 
}