java hjälp!!|Programmering / Grafisk formgivning|Forum|Nordichardware

Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
The forums are currently locked and only available for read only access
sp_Feed sp_TopicIcon
java hjälp!!
ulrika_mob
It’s a first time for everybody
Medlem
Forum Posts: 3
Member Since:
June 14, 2002
sp_UserOfflineSmall Offline
1
June 15, 2002 - 11:52 am
sp_Permalink sp_Print

Hejjj
Jag har försökt och koda ihop en kalkylator, som skall läsa in tre saker från prompten. Dels två tal och dels vilken sorts räkneoperation som ska utföras. Dessa värden ska skickas till en metod som gör uträkningen.
Här e koden, den vill inte läsa något från prompten "BEHÖVEr HJÄLP MED ATT KORRIGERA" någon som kan hjäla mig PLZ!

---------------------------------------------

import java.io.*;
import java.util.*;

public class calc{

public static void main (String args[]) throws Exception {
calc test=new calc();
test.init();
}

public void init() throws Exception {
BufferedReader input =
new BufferedReader(new InputStreamReader(System.in));
String line = "";

boolean calculate=true;

double total = 0;
String waste1;
String waste2;

System.out.println("Enter a number!");

while (calculate) {

waste1 = input.readLine();
double numberOne = Integer.parseInt(waste1);

String count;
count = input.readLine();

waste2 = input.readLine();
double numberTwo = Integer.parseInt(waste2);

if (count == "+")
total = numberOne + numberTwo;

if (count == "-")
total = numberOne - numberTwo;

if (count == "*")
total = numberOne * numberTwo;

if (count == "/")
total = numberOne / numberTwo;

if (count == "=") {
System.out.println(total);
calculate = false;
}

}
}
}

jonaz
Kommer du hit ofta?
Medlem
Forum Posts: 940
Member Since:
May 8, 2001
sp_UserOfflineSmall Offline
176131
June 15, 2002 - 12:58 pm
sp_Permalink sp_Print

Tur för dig att jag inte har något att göra just nu! Logiskt sett så är det inget större fel på koden men det finns ett stort fel:
Eftersom strängar inte är en primitiv datatyp (som t.ex int och float är) så kan man inte jämföra den med == utan man måste använda "myString.equals( "jonas" )" för att jämföra innehållet i dem.Om man använder sig av == så jämför man bara om de är samma object (vilket det iof kan vara eftersom de kan hamna i en pool, men det är kanske överkurs), inte om de "innehåller samma sak".

Koden kommer om ett litet tag!

Desktop: Gigabyte GA-MA770-DS3 | AMD Phenom II 955 BE | 8GB PC6400 | Samsung 1TB + 500GB | Powercolor HD3870
3DMark 2006: 11932 3DMark Vantage: P5137
Laptop: Macbook Pro 2012 | 8GB | Samsung 830 128GB SSD
HTPC: Mac Mini | 3GB | 500GB

jonaz
Kommer du hit ofta?
Medlem
Forum Posts: 940
Member Since:
May 8, 2001
sp_UserOfflineSmall Offline
176137
June 15, 2002 - 1:48 pm
sp_Permalink sp_Print

Lite tips:
* Använd alltid hela sökvägen i importsatsen, underlättar när man skriver större program
* Använd alltid {} när du skriver if-, else-satser osv trots att det inte behövs. Då är risken mindre att du eller någon annan gör fel när koden ska ändras.
* Ta hand om de "exceptions" som slängs på rätt ställe.
* Validera indata från användaren, de gör inte alltid rätt wink

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Calc {

public static void main (String args[]) {
new Calc().calculate();
}

private void calculate() {
try {
System.out.print( "Enter first number: " );
double total = getNumber();
while (true) {
System.out.print( "Enter operator: " );
String operator = getOperator();
if (operator.equals( "=" )) {
System.out.println( "Answer: " + total );
break;
}
System.out.print( "Enter number: " );
double number = getNumber();

if (operator.equals( "+" )) {
total += number;
}
if (operator.equals( "-" )) {
total -= number;
}
if (operator.equals( "*" )) {
total *= number;
}
if (operator.equals( "/" )) {
total /= number;
}
}
}
catch( IOException ioe ) {
System.out.println( ioe );
}

}

private double getNumber() throws IOException {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
while( true ) {
try {
return Double.parseDouble( input.readLine().trim() );
}
catch( NumberFormatException nfe ) {
System.out.print( "Not a valid number, try again: " );
}
}
}

private String getOperator() throws IOException {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
while( true ) {
String operator = input.readLine().trim();
if( operator.equals( "+" ) || operator.equals( "-" ) || operator.equals( "*" ) ||
operator.equals( "/" ) || operator.equals( "=" ) ) {

return operator;
}
else {
System.out.print( "Not a valid operator, try again: ");
}
}
}

}

Lycka till i fortsättningen!
_________________
Abit KR7A-Raid | XP 1700+ @ 1900+ | Taisol CGK760092 | 256 MB Samsung DDR |
2 x IBM 46GB (Raid 0) & Seagate 80GB | Leadtek GF3 Titanium 500 @245/560

[ Detta Inlägg ändrades av: jonaz den 2002-06-15 15:51 ]

Desktop: Gigabyte GA-MA770-DS3 | AMD Phenom II 955 BE | 8GB PC6400 | Samsung 1TB + 500GB | Powercolor HD3870
3DMark 2006: 11932 3DMark Vantage: P5137
Laptop: Macbook Pro 2012 | 8GB | Samsung 830 128GB SSD
HTPC: Mac Mini | 3GB | 500GB

jonaz
Kommer du hit ofta?
Medlem
Forum Posts: 940
Member Since:
May 8, 2001
sp_UserOfflineSmall Offline
176139
June 15, 2002 - 1:55 pm
sp_Permalink sp_Print

Såg just i ditt tidigare inlägg att det var en skoluppgift... Borde kanske inte ha löst den till dig i sin helhet men men!

Desktop: Gigabyte GA-MA770-DS3 | AMD Phenom II 955 BE | 8GB PC6400 | Samsung 1TB + 500GB | Powercolor HD3870
3DMark 2006: 11932 3DMark Vantage: P5137
Laptop: Macbook Pro 2012 | 8GB | Samsung 830 128GB SSD
HTPC: Mac Mini | 3GB | 500GB

ulrika_mob
It’s a first time for everybody
Medlem
Forum Posts: 3
Member Since:
June 14, 2002
sp_UserOfflineSmall Offline
176144
June 15, 2002 - 2:18 pm
sp_Permalink sp_Print

vet inte hur jag skall kunna tacka dig, otroligt shjyst. Programmering är inte riktigt mitt favo ämne, har haft det otroligt svårt att lära mig ojektorientering på 1 månad ungefär.
Har du någon email? icq? msn? som man kan kontakta dig på?
smile
tack tack

jonaz
Kommer du hit ofta?
Medlem
Forum Posts: 940
Member Since:
May 8, 2001
sp_UserOfflineSmall Offline
176146
June 15, 2002 - 2:33 pm
sp_Permalink sp_Print

On 2002-06-15 16:18, ulrika_mob wrote:
vet inte hur jag skall kunna tacka dig, otroligt shjyst. Programmering är inte riktigt mitt favo ämne, har haft det otroligt svårt att lära mig ojektorientering på 1 månad ungefär.
Har du någon email? icq? msn? som man kan kontakta dig på?
smile
tack tack

Du har ett privat meddelande!

Desktop: Gigabyte GA-MA770-DS3 | AMD Phenom II 955 BE | 8GB PC6400 | Samsung 1TB + 500GB | Powercolor HD3870
3DMark 2006: 11932 3DMark Vantage: P5137
Laptop: Macbook Pro 2012 | 8GB | Samsung 830 128GB SSD
HTPC: Mac Mini | 3GB | 500GB

Forum Timezone: Europe/Stockholm
Most Users Ever Online: 694
Currently Online:
Guest(s) 58
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Andreas Galistel: 16287
Jonas Klar: 15897
ilg@dd: 10810
Nyhet: 10607
Mind: 10550
Ctrl: 10355
Gueno: 9881
Guest: 9344
Snorch: 8881
Callister: 8468
Newest Members:
PetrbonFU PetrbonFU
Karine Bembry
Dolores Mcdaniels
Anibal McLeish
Francisca Alt
Alfie Everhart
Lester Huitt
Orlando Jorgensen
Mikki Lundgren
Dakota Kozlowski
Forum Stats:
Groups: 11
Forums: 59
Topics: 146630
Posts: 1300967

 

Member Stats:
Guest Posters: 2
Members: 79425
Moderators: 0
Admins: 11
Administrators: nordicadmin, Henrik Berntsson, Anton Karmehed, Carl Holmberg, Joel Oscarsson, Mikael Linnér, Mikael Schwartz, Andreas Paulsson, Nickebjrk, Mattias Pettersson, EmxL