2016-11-17 22 views
-2
package CurrencyConverter; 

import java.util.Scanner; 

public class CurrencyConverter { 

    public static void main(String[] args) { 

     System.out.println("Welcome to the Currency Converter" 
       + " \"MONEY MONEY KACHINGG\"\n "); 

     Scanner s = new Scanner(System.in); 
     System.out.print("Enter desired amount: "); 
     double amount = s.nextDouble(); 
    //----------------Supported Amount------------------------------------------  
     if(amount < 0 || amount > 1000) { 
      System.out.println("Amount must be between 0 and 1000"); 
      return; } 
    //--------------------------------------------------------------------------   
     System.out.print("Type currency to START FROM: "); 
     String from = s.next(); 
     System.out.print("Type currency to CONVERT TO: "); 
     String to = s.next(); 

     double currency; 
    //-----------------------UNSUPPORTED------------- --------------------------- 
     if((!from.equals("BGN") && !to.equals("USD")) && 
      (!from.equals("USD") && !to.equals("BGN"))) { 

      System.out.println("Unsupported Currency!\n" 
        + "Please choose from BGN or USD"); } 
    //------------------------BGN to USD---------------------------------------- 
     else if(from.equals("BGN") && to.equals("USD")) { 
      for(currency = 0; currency <= amount; currency++) { 
       System.out.printf("%.2f leva = %.2f $\n",currency,(currency/1.52)); } 
      } 
    //------------------------USD to BGN----------------------------------------  
     else if(from.equals("USD") && to.equals("BGN")) { 
      for(currency = 0; currency <= amount; currency++) { 
       System.out.printf("%.2f $ = %.2f leva\n",currency,(currency/1.52)); } 
      } 
    //------------------------Incorrect-----------------------------------------  
     else { 
      System.out.println("Unsupported Currency!\n" 
        + "Please choose from BGN or USD"); } 

Есть ли более простой способ определить, какая валюта разрешена, а какая нет? (См. UNSUPPORTED).Как избежать использования слишком большого количества && и ||

Мне сказали, что так много & & или || не подходят для кода. Это верно?

+9

Я голосующий, чтобы закрыть этот вопрос не по теме, потому что он относится к обзору кода. ** Если код работает как есть **, отправьте его там. – djechlin

+0

Определите «слишком много». По сравнению с чем? Почему вы спрашиваете нас, а не источник этого бессмысленного заявления? – EJP

+0

Мне жаль, что я новичок здесь, где я могу это сделать –

ответ

3

В целом, это не так, что многие || или && - это плохое кодирование. Имея , избыток не хорош. В вашем случае, поскольку вы только поддерживают два типа преобразования можно упростить вещи:

if(from.equals("BGN") && to.equals("USD")) { 
     for(currency = 0; currency <= amount; currency++) { 
      System.out.printf("%.2f leva = %.2f $\n",currency,(currency/1.52)); } 
    } 
    else if(from.equals("USD") && to.equals("BGN")) { 
     for(currency = 0; currency <= amount; currency++) { 
      System.out.printf("%.2f $ = %.2f leva\n",currency,(currency/1.52)); } 
    } 
    else { 
    //unsupported 
    } 

Ранее Вы проверяли неподдерживаемых конверсий дважды: в первом если, а также косвенно в последнем еще. Также я должен указать, что вы делаете одно и то же преобразование в обоих случаях, так что, вероятно, что-то не так.

+0

Вы правы, спасибо. –

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