2013-10-24 1 views
2

я пытался компилировать это, и получил сообщение об ошибке сказав: $ JAVAC Question2.java 2> Question2.java:55: ошибка: достигнут конец файла во время разбора } ^ 1 ошибка ТИП НЕ МОЖЕТ БЫТЬ РЕШЕН ДЛЯ ПЕРЕМЕННОГОНаличие строк и компиляции ошибок по программе Java

Я уверен, что код верен, но есть небольшая вещь, которую мне не хватает. Программа предназначена для проверки типа билета (стандартная/виртуальная/ограниченная) и скидка (нет/ученик/пенсионер), если выбран vip, скидка отсутствует, а скидки для студентов и пенсионеров - 5% и 10% соответственно, но я не могу разобраться в методах ввода или объявлять типы.

Любая помощь приветствуется. PS, я студент, изучающий Java и не могу найти точное решение этой проблемы, поэтому я поставил здесь вопрос.

import java.util.Scanner; 



public class Question2 { 

public static void main(String args[]){ 

    Scanner userinput = new Scanner(System.in); 

    String ticket ; 
    System.out.print(" Type of Ticket: "); 
    ticket = userinput.next(); 

    String discount; 
    System.out.print("What sort of discount do you have?"); 
    discount = userinput.next(); 

    int standard = 40; 
    int restricted = 20; 
    int VIP = 60; 



    if ((ticket == "standard") && (type == "student")) { 
     double standard_student = standard * 0.95; 
     } 

    if ((ticket == "standard") && (type == "pensioners")) { 
     double standard_pensioners = standard * 0.90; 
     } 


    if ((ticket == "restricted") && (type == "student")) { 
     double restricted_students = restricted * 0.95; 
    } 


    if ((ticket == "restricted") && (type == "pensioner")) { 
     double restricted_pensioner = restricted * 0.90; 
    } 

    if (ticket=="standard") 
     System.out.print("Your ticket costs $."); 

    if (ticket == "restricted") 
     System.out.print("Your ticket costs $."); 


    if (ticket== "VIP") 
    System.out.print("Your discount type cannot be used with your requested ticket type."); 


    System.out.println ("Thank you!"); 
    } 
+1

Сначала вы забыли закрытие '}' для вашего класса. Во-вторых, сравните строковые значения с методом 'equals'' String', а не с '=='. – rgettman

+1

Для второй части комментария rgettman см. [Как сравнить строки в Java?] (Http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java?rq=1) –

ответ

2

Вы пропустили концовку фигурную скобку для Question2 класса:

import java.util.Scanner; 

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

    String ticket ; 
    System.out.print(" Type of Ticket: "); 
    ticket = userinput.next(); 

    String discount; 
    System.out.print("What sort of discount do you have?"); 
    discount = userinput.next(); 

    int standard = 40; 
    int restricted = 20; 
    int VIP = 60; 

    if ((ticket.equals("standard")) && (type.equals("student"))) { 
     double standard_student = standard * 0.95; 
    } 

    if ((ticket.equals("standard")) && (type.equals("pensioners"))) { 
     double standard_pensioners = standard * 0.90; 
    } 

    if ((ticket.equals("restricted")) && (type.equals("student"))) { 
     double restricted_students = restricted * 0.95; 
    } 


    if ((ticket.equals("restricted")) && (type.equals("pensioner"))) { 
     double restricted_pensioner = restricted * 0.90; 
    } 

    if (ticket.equals("standard")) 
     System.out.print("Your ticket costs $."); 

    if (ticket.equals("restricted")) 
     System.out.print("Your ticket costs $."); 

    if (ticket.equals("VIP")) 
     System.out.print("Your discount type cannot be used with your requested ticket type."); 

    System.out.println ("Thank you!"); 
    } 
} // <--- Add this 

Этот тип ошибки можно легко избежать с помощью надлежащего отступы. Фактически, большинство IDE могут автоматически форматировать код для вас.

Также: Примечание. Вам нужно использовать .equals(), если вы хотите сравнить строковые значения. Использование оператора == будет сравнивать только ссылки. Я обновил свой пример.

0

При сравнении значения VALUE строк всегда используйте метод equals, а не ==.

ex: if (type.equals ("student"))

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