עבור לתוכן

שאלה ב JAVA

Featured Replies

פורסם

אני רציתי לכתוב תוכנית שעושה כפל חילוק + - בINPUTDIALOG ועשיתי כזה דבר

\


import javax.swing.JOptionPane;
import java.math.*;

public class Addition
{
public static void main( String args[] )
{
int op = 0;
int sum = 0;

String firstNumber =
JOptionPane.showInputDialog( "Enter first integer" );
String secondNumber =
JOptionPane.showInputDialog( "Enter second integer" );

int number1 = Integer.parseInt( firstNumber );
int number2 = Integer.parseInt( secondNumber );
String o =
JOptionPane.showInputDialog( "1=* 2=+ 3=- 4=/" );
int op3 = Integer.parseInt( o );
if(op3==1 )
{
sum = number1 * number2; // add numbers
}
if(op3==2)
{
sum = number1 + number2; // add numbers
}
if(op3==3)
{
sum = number1 - number2; // add numbers
}
if(op3==4)
{
sum = number1 / number2; // add numbers
}

JOptionPane.showMessageDialog( null, "The sum is " + sum,
"Sum of Two Integers", JOptionPane.INFORMATION_MESSAGE );
}
}]

הקוד הזה עובד כמו שצריך אבל במקום שאני ירשום * אני צריך לרשום 1 ורק אז זה יעשה לי פעולה של כפל

String o =

JOptionPane.showInputDialog( "1=* 2=+ 3=- 4=/" );

איך אני גורם לתוכנה להבין שאני לוחץ על * ?

ניסיתי לעשות PARASEINT לזה אבל לא הלך

ניסיתי גם לשים את הקוד ASCII של ה * אבל זה לא מחשב לי את התוצאה והוא זורק לי תוצאה 0 כי הוא לא נכנס ל IF

אני יודע שצריך לעשות משהו שקוראים לו ASCII TO CHAR (משהו כזה)אבל אני לא מצליח

תודה

פורסם

אני לא יודע java, אבל היא מאוד דומה ל C#.

ב C# יש אירוע בלחיצת כפתור, אני הייתי בודק את האירוע הנ"ל ובודק איזה כפתור נלחץ (לא צריך ASCII בשביל זה)

פורסם
  • מחבר

אני לא יודע CSHARP ואני לא הכי מומחה לJAVA (בעקרון רק התחלתי ללמוד ) ככה שאני לא הכי יודע

אני יודע שעושים את זה עם KEYLISTENER מה שאמרת אבל כמו שאמרתי אני לא הכי יודע איך

פורסם

אל תעשה parshint, אלא תקלוט את זה כמחרוזת, ותיקח את האות(char) הראשונה. תבדוק האם האות הזו שווה ל- '+', '-', '*' או '/', ותפעל בהתאם(אתה יכול לעשות את זה ע"י סוויץ לדוגמא).

פורסם
  • מחבר

ניסיתי ועשיתי כזה דבר

import javax.swing.JOptionPane;

import java.math.*;

public class Addition

{

public static void main( String args[] )

{

int op = 0;

int sum = 0;

String firstNumber =

JOptionPane.showInputDialog( "Enter first integer" );

String secondNumber =

JOptionPane.showInputDialog( "Enter second integer" );

String sign =

JOptionPane.showInputDialog( "Enter math sign" );

if(sign=="*")

{

{

int number1 = Integer.parseInt( firstNumber );

int number2 = Integer.parseInt( secondNumber );

sum=number1*number2;

break;

}

}

JOptionPane.showMessageDialog( null, "The sum is " + sum,

"Sum of Two Integers", JOptionPane.INFORMATION_MESSAGE );

}

}

וזה לא עובד שאני לוחץ על *

זה רושם לי

Exception in thread "main" java.lang.NumberFormatException: For input string: "*"

at java.lang.NumberFormatException.forInputString(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source

)

ניסיתי גם

if(sign=="*")

{

{

int number1 = firstNumber;

int number2 = secondNumber;

sum=number1*number2;

break;

}

}

וגם זה לא עובד לי

בקשה תרשום לי את התשובה אני משתגע כבר

פורסם

1) על איזו שורה זה מצביע לך?

2) אתה בטוח שלא הכנסת את הכוכבית לאחד המספרים בטעות?

פורסם
  • מחבר

אתה מדבר על הכוכבית הזו

sum=number1*number2;

לא הכנסתי בטעות זה כפל

פורסם

התכוונתי לאינפוט שאתה מכניס לו באינפוט דיאלוג. באיזו שורה הוא נותן לך את השגיאה?

פורסם
  • מחבר

באותו רגע שאני מכניס כאן את הסימן *

String sign =

JOptionPane.showInputDialog( "Enter math sign" );

פורסם

תרשום את כל הstack trace של האקספשן שאתה מקבל. אתה בטוח שזו השורה שהוא מצביע עליה?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים