2013-05-01 6 views
0
final static int arrayLength = 1000; //maximum array size 
    static float[] productPrice = new float[arrayLength]; //stores the prices of products 
    static String[] productName = new String[arrayLength]; //stores the names of products 

    public static void main(String[] args) { 

     boolean quit = false; 
     do { 
      System.out.print("enter product: "); 
      String product = keyboard.nextLine();; 
      for(int i=0; i<productName.length; i++) 
       productName[i] = product; 

      System.out.print("enter price: "); 
      float price = keyboard.nextFloat(); 
      for(int i=0; i<productPrice.length; i++) 
       productPrice[i] = price; 

      if(price == -1) 
       quit = true; 
     } while(!quit); 

     for(int i=0; i<productPrice.length; i++) 
      if(productPrice[i] > productPrice[i+1]) { 
       float temp = productPrice[i+1]; 
       productPrice[i+1] = productPrice[i]; 
       productPrice[i] = temp; 
       System.out.println("Product: " + productName[i] + "\nPrice: " + productPrice[i]); 
      } 
    } 

루프를 어떻게 계속 하시겠습니까? 멈추기 위해 -1을 누를 때까지 계속 가야합니까? 나는 성명서의이 부분에 대한 도움이 필요하다. 내 대답이 왜 연속적이지 않은지, 그리고 내가 그것을 계속 유지할 수있는 방법을 설명해 주어야한다. 그리고 무엇을 멈추는 데 사용할 수있는 역점이 무엇인지if else case 내부에서 루프를 계속하는 방법은 무엇입니까?

답변

0
+0

체크 아웃하면서 거기에서 함께 업데이트 된 코드를. 하지만 '-1을 누르기 전까지 루프 계속'이라는 문제는 여전히 작동하지 않습니다. 어떤 제안? –

+0

은 부동 소수점 숫자를 비교하기가 쉽지 않은 것처럼 보입니다. http://stackoverflow.com/questions/10334688/how-dangerous-is-it-to-compare-floating-point-values – Delcasda

0

가격을 찾고있는 당신은 int로 그것을 비교하고 있습니다. 시도 :

if((int)price == 1) 

또는

if(price == 1.0f)