2015-11-20 2 views
0
public static void displayArray(int tab[]){ 
    int i; 
    String choix; // choice 


    System.out.println("\n you want to see the values you entred from first position or last ?"); 
    System.out.println("tape "P" for first , and"D" for last); 
    choix=sc1.nextLine(); // sc1 for nextLine , sc for nextInt to avoid buffering problems . 

    if(choix=="p"||choix=="P") 
    { for(i=0;i<k;i++)  //k is the maximum of the array(max index) 
     System.out.println("T["+i+"]= "+tab[i]); // why this instruction doesn't work ?? 

    } 

    if(choix=="D"||choix=="d") 
    {for(i=k-1;i>=0;i--) 
     System.out.println("T["+i+"]= "+tab[i]);// this one too doesn't work 

    }}  


    public static void main(String[] args) { 
     // TODO Auto-generated method;stub 
     int tab[]=new int[4]; 

     System.out.println(readIntArray(tab)); 
     displayArray(tab); 
    }  
} 

Я не понимаю, почему displayArray не работает, System.out.println должен напечатать мой массив после проверки состояния, но он не работает.Почему Println не показывает мой массив

+0

Ваш код не работает, так как некорректная печать: 'System.out.println (« лента «P» для первого и «D» для последнего »);' – naurel

+0

'// k - это максимум массива (max index) '... Хорошо, так где вы установили' k'? – Mariano

ответ

0

Когда вы сравниваете Object с, == не только сравнивает свое значение, но сравнивает данные объекты. Например:

String a = "foo"; 
String b = "foo"; 
a == b; //false 
a.equals(b); //true 

, поскольку equals сравнивает ли объекты похожи, == сравнивает объекты, являются ли то же самое. Кроме того, если вы используете кавычки внутри String, вам нужно избежать их с помощью \", так как если вы используете только ", то вы закрываете String, что приводит к ошибкам. Таким образом, вы должны сделать что-то вроде этого:

public static void displayArray(int tab[]){ 
    int i; 
    String choix; // choice 


    System.out.println("\n you want to see the values you entred from first position or last ?"); 
    System.out.println("tape \"P\" for first , and\"D\" for last); 
    choix=sc1.nextLine(); // sc1 for nextLine , sc for nextInt to avoid buffering problems . 

    if(choix.equals("p")||choix.equals("P")) 
    { for(i=0;i<k;i++)  //k is the maximum of the array(max index) 
     System.out.println("T["+i+"]= "+tab[i]); // why this instruction doesn't work ?? 
     //Your code did not even reach this point due to using unescape quotes inside a String and incorrect comparisons in your if 

    } 

    if(choix.equals("D")||choix.equals("d")) 
    {for(i=k-1;i>=0;i--) 
     System.out.println("T["+i+"]= "+tab[i]);// this one too doesn't work 
     //The reason is the very same as above 

    }}  


    public static void main(String[] args) { 
     // TODO Auto-generated method;stub 
     int tab[]=new int[4]; 

     System.out.println(readIntArray(tab)); 
     displayArray(tab); 
    }  
} 

Кроме того, вы должны структурировать свой код, так, как это трудно читать.

+0

Спасибо за объяснение, извините, я ошибся при копировании моей программы, я набрал "" вместо '' в println, программа отлично работает сейчас спасибо – Sierra

0

Я предполагаю, что это на Java. Если сравнить СТРОКА использовать

string.equals(String) 

Вместо ==

Он должен работать с:

if(choix.equals("p") || choix.equals("P")) 
if(choix.equals("D") || choix.equals("d")) 
+0

спасибо, что это работает :) – Sierra

Смежные вопросы