2014-09-25 5 views
0

Я пытаюсь написать программу, которая просит пользователя ввести две точки. Каждая точка вводится по одному за раз. Тогда мне нужна координата x для меня меньше или равна 5 и больше или равна -5.Почему моя программа не возвращает правильное строковое значение

Мне нужно следовать той же логике, но с 2.5 и -2.5. По какой-то причине он не возвращает инструкцию строки после проверки. У меня нет синтаксических ошибок, поэтому я не уверен, в чем проблема.

import java.util.Scanner; 
public class coordinates { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     //prompt user to enter coordinates 
     System.out.println("Enter a X coordinate: "); 
     double x = input.nextDouble(); 

     System.out.println("Enter a Y coordinate: "); 
     double y = input.nextDouble(); 

     //check x coordinate to see if it is less or equal to 5 and greater than or equal to -5 
     if (x <= 5 && x >= -5){ 
      if (y <= 2.5 && y >= -2.5) 
       System.out.println("Yes"); 
     }else 
      System.out.println("no"); 
    } 
} 
+1

Просто подсказка - всегда используйте символы '{}' с операторами 'if/else'; в противном случае может возникнуть путаница в выяснении того, каков объем каждого 'if'. Не делать этого - огромный источник ошибок. –

+0

OKe, еще один вопрос, как вы напечатаете это: Point (x, y) находится в диапазоне. –

ответ

0

Если значение x находится в диапазоне, но ваше значение y не в диапазоне, то ничего не будет напечатано, потому что первый if последовало, но второй if не последовало. Измените условие if на одно более крупное условие, так что если какое-либо условие не удастся, тогда будет следовать else.

if ((x <= 5 && x >= -5) && (y <= 2.5 && y >= -2.5)) { 
    System.out.println("Yes"); 
}else { 
    System.out.println("no"); 
} 
+0

Большое вам спасибо. У меня есть еще один вопрос: как мне сформировать свою строку вывода, если я хочу, чтобы она говорила: Point (x, y) находится в диапазоне –

+0

@ user3240208, просто сделайте это: 'System.out.println (« Точка («+ x + "," + y + ") находится в диапазоне"); вместо текста "Да". Это называется конкатенацией (если вы хотите использовать Google для получения дополнительной информации и того, как она работает). – Frakcool

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