[JAVA]Porblem z pętlą if

Witam, w javie siedze bardzo krótko i nie znam się na niej specjalnie. Mam pewien problem, próbowałem przerobić pewien program na inny z pętlami, niestety ciągle podkreśla mi się błąd w jednym miejscu (przy pętli, instrktorze if) Dla Was pewnie to jest śmieszne ale jak już pisałem w tytule jestem nowicjueszem.

package javaapplication9;

import javax.swing.*;

import java.lang.*;

public class Main {


String s;

int a,b;



public static void main (String a[]){

Main p=new Main ();


    p.s=JOptionPane.showInputDialog(null,"Podaj na jakiej wysokosci lecisz - w metrach?");

    p.a=Integer.parseInt (p.s);


    p.s=JOptionPane.showInputDialog(null,"Podaj z jaka predkoscia lecisz - km?");

    p.b=Float.parseFloat(p.s);


if(a < 10000);b <800) 

{ 

JOptionPane.showMessageDialog(null,"Jest dobrze tak trzymaj!");

}else if(a > 10000 ;b > 800)

{ 

JOptionPane.showMessageDialog(null,"Lecisz za wysoko i za szybko! Popraw sie!");

} 

else if(a < 10000 ;b > 800) 

{ 

JOptionPane.showMessageDialog(null,"Lecisz za szybko! Popraw sie!");

else if(a > 10000 ;b < 800) 

{ 

JOptionPane.showMessageDialog(null,"Lecisz za szybko! Popraw sie!");


} 

}

Proszę o pomoc lub przerobienie na program by działał na tej zasadzie.

Zapoznaj się proszę z tą stroną i zmień tytuł na

konkretny. Inaczej temat poleci do śmietnika.

Przy założeniu że a < 10000 i b < 800 to:

if(a < 10000 && b <800)

Przy założeniu że a < 10000 lub b < 800 to:

if(a < 10000 || b <800)

Mogę się mylić bo z Javą nie miałem za dużo kontaktu ;]

no niestety nie pomga :confused:

A zamieniłeś średnik na odpowieni operator we wszystkich instrukcjach if?

Dodatkowo

if(a < 10000);b <800)

za dużo tych nawiasów :wink:

Tak zrobiłem jak mi radziłeś i to samo z średnikami ale nie działa :confused:

Po usunięciu nawiasu dalej to samo. Czekam na kogoś kumatego z javy :stuck_out_tongue:

Hah, a od kiedy if jest pętlą? :smiley:

if(a < 10000);b <800) 

// oraz

if(a < 10000 ;b <800)

jest niepoprawne. w nawiasie musi być 1 wyrażenie.To jak połączyć te warunki operator lub albo i napisał już inż. Piniol. Również brakuje ci nawiasów klamrowych do pary, radzę przyjąć jakąś konwencję stawiania tych nawiasów bo kod jest nieczytelny i łatwo zgubić jeden nawias. Radzę to zrobić w tym stylu:

if(condition) {

			// something

		}

		else if(condition) {

			// something

		}

		else {

			// something

		}

W każdym razie w tym kodzie, który podałeś, brakuje nawiasów klamrowych.

No dobra ale nawet w takim prostym programie podkreśla mi if i dlaczego?

package javaapplication9;

import javax.swing.*;

public class Main {


int a = 10 ,b = 20;




public static void main (String a[]){



    if(a < 10){


      System.out.println("lamers");

  }


} 

}

Dodaj przed int słowo static

może zacznijmy od tego co Ci podkreśla? w czym to piszesz? w którym momencie Ci to podkreśla i czy nie ma żadnego związanego z tym podkreśleniem komunikatu?

if(a = 1){
found : int

required: java.lang.String[]

    if(a = 1){

E:\Users\ja\Documents\NetBeansProjects\JavaApplication9\src\javaapplication9\Main.java:12: incompatible types

found : java.lang.String[]

required: boolean

    if(a = 1){

Taki jest wlasnie bload, a tworze w NetBeansie.

if(a = 1)

To nic dziwnego. = to operator przypisania, a rzadko się go używa w warunkach. Natomiast operator równości to ==, czyli powinno pewnie być:

if(a == 10) {}

Co oznacza “jeśli a jest równe 10”.

Ale ja mam znak > a nie =.

Masz do wyboru a i b robisz jako static lub w if używasz p.a i p.b (i tego bym użył)

JOptionPane.showMessageDialog(null,"Lecisz za szybko! Popraw sie!");

else if(a > 10000 ;b < 800)

przed else wstaw }

oczywiście ; znika i zastępujesz && lub ||

nie nie nie, podstawowy błąd to:

int a,b;

a potem

public static void main (String a[]){

następnie w ifie będziesz starał porónać ze zmienną a, najłatwiej tak jak pisze cosik_ktosik , odwołać się poprzez p.a, ale podstawą którą powinieneś był przyjąć i stosować wszędzie jest stosowanie samo tłumaczących się nazw zmiennych…

To mógłby mi ktoś ten kod poprawić tak by funkocjonował?

Poza tymi nawiasami i warunkami to jeszcze, w tym pierwszym kodzie, najpierw przypisujesz wartości do pól obiektu p, to później przy warunkach również powinno być p.a i p.b.

Zrób to co napisałem. W if-ach dodaj przed każdym a i b p. (czyli p.a i p.b). Wstaw tą klamrę w podanym fragmencie. W każdym if zmień średnik na && (np a>10000 && b <800) jeżeli warunek dotyczy sytuacji a>10000 i b<800 (piszę z głowy, więc nie pamiętam, czy tam był taki warunek, z takimi liczbami).

PS Coś chyba jest nie tak w tych warunkach. Jak Dasz wysokość i prędkość na 0, to wypisze, że wszystko jest OK.