Сообщение об ошибке: ´) ´ ожидаемое, а «не утверждение» ´; ´ ожидаемое - PullRequest
2 голосов
/ 29 июня 2011

Я совершенно новичок в программировании. Я читаю некоторые учебники в Интернете, а также Барри Бердса «Java для чайников», пытаясь научиться программировать на Java. Я перепробовал все варианты, которые мог придумать, но безуспешно. В одном упражнении я должен сделать следующую программу для печати сообщения в «messageDialogBox», которое должно содержать числа, записанные пользователем программы. К сожалению, я получаю следующее сообщение об ошибке при попытке компиляции: Может кто-нибудь, пожалуйста, помогите мне заставить код работать? Что не так с кодом?

5 errors
Addition2.java:24: ')' expected
      JOptionPane.showMessageDialog( null, firstnumber "+" secondnumber
                                                      ^
Addition2.java:25: not a statement
      + sum, "Results", JOptionPane.PLAIN_MESSAGE );
      ^
Addition2.java:25: ';' expected
      + sum, "Results", JOptionPane.PLAIN_MESSAGE );
           ^
Addition2.java:25: not a statement
      + sum, "Results", JOptionPane.PLAIN_MESSAGE );
                                   ^
Addition2.java:25: ';' expected
      + sum, "Results", JOptionPane.PLAIN_MESSAGE );

Код следующий:

import javax.swing.JOptionPane;

public class Addition2
{
   public static void main( String args[] )
   {
      String firstnumberstring;
      String secondnumberstring;

      int firstnumber;
      int secondnumber;
      int sum;

      firstnumberstring = JOptionPane.showInputDialog( 
            "Write first number" );
      secondnumberstring =
         JOptionPane.showInputDialog( "Write second number" );

      firstnumber = Integer.parseInt( firstnumberstring );
      secondnumber = Integer.parseInt( secondnumberstring );

      sum = firstnumber + secondnumber;

      JOptionPane.showMessageDialog( null, firstnumber "+" secondnumber
      + sum, "Results", JOptionPane.PLAIN_MESSAGE );
   } 
}

Ответы [ 3 ]

3 голосов
/ 29 июня 2011

Предполагая, что showMessageDialog предназначен для представления результата сложения, эта строка

JOptionPane.showMessageDialog(null, firstnumber "+" secondnumber
      + sum, "Results", JOptionPane.PLAIN_MESSAGE);

должно читаться что-то вроде

JOptionPane.showMessageDialog(null, firstnumber + "+" + secondnumber + "=" +
                                                ^     ^              ^^^^^^^

      + sum, "Results", JOptionPane.PLAIN_MESSAGE);

(Простое расположение строк и чисел рядом друг с другом не объединяет их. Вам придется поставить + между ними!)

Также обратите внимание, что 5 + 3 + " hello" дает "8 hello". Чтобы произвести 53 hello, вам нужно сделать, например, "" + 5 + 3 + " hello".


Вы также можете использовать, например, String.format, в этом случае код будет выглядеть как

String msg = String.format("%d + %d = %d", firstnumber, secondnumber, sum);
JOptionPane.showMessageDialog(null, msg, "Results", JOptionPane.PLAIN_MESSAGE);
2 голосов
/ 29 июня 2011

Это проблема:

firstnumber "+" secondnumber

Непонятно, что вы здесь имеете в виду.Вы действительно хотели арифметическую сумму?Если это так, у вас не должно быть кавычек вокруг оператора +:

JOptionPane.showMessageDialog(null, firstnumber + secondnumber + sum,
    "Results", JOptionPane.PLAIN_MESSAGE );

Если вы на самом деле намеревались использовать конкатенацию строк и включить "+" в строку, вам нужночтобы использовать что-то вроде этого:

JOptionPane.showMessageDialog(null, firstnumber + "+" + secondnumber + "=" + sum,
    "Results", JOptionPane.PLAIN_MESSAGE );

Глядя примерно так:

+ "+" +

первый и третий знаки + здесь являются оператором конкатенации строк.Средний находится внутри строкового литерала.

0 голосов
/ 29 июня 2011

Вам нужно объединить строки, используя оператор строки cat: +

JOptionPane.showMessageDialog( null, firstnumber  + "+" + secondnumber + " = " + sum, "Results", JOptionPane.PLAIN_MESSAGE );

Btw; считается хорошей вещью объявлять переменные там, где они присваиваются впервые - и не придерживаться старого требования c (с древними корнями), что все переменные должны быть объявлены перед фактическим кодом.

String firstnumberstring = JOptionPane.showInputDialog( 
        "Write first number" );

Это немного помогает при попытке выяснить, где используется переменная. Это особенно хорошо, когда переменная используется только в определенной области; (внутри фигурных скобок)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...