Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Cofanie kodu do danej czesci.


knugi

Rekomendowane odpowiedzi

Opublikowano

Cześć, nie wiem jak ten błąd nazwać lecz mam taki kod:

package Petle;

import java.util.Scanner;

public class cosnietak 
{

	public static void main(String[] args) 
	{
		System.out.println("Wpisz '1'");
		Scanner s = new Scanner(System.in);
		int a = s.nextInt();
		if (a == 1)
		{
			System.out.println("Gratulacje wygrales talon");
		}
		else
		{
			System.out.println("Ups.. Cos poszlo nie tak sprobuj jeszcze raz");
		}

	}

}

I jak np wpisze 2 to bede mogl ponownie wpisac liczbe Bo teraz to program mi sie zatrzymuje a tego nie chce i chce od poczatku miec program i znow bd mogl wpisac liczbe

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

Gratulacje :(

Mam taki kod :D

package Cosnietak;

import java.util.Scanner;

public class cosnietak2 
{

	public static void main(String[] args) 
	{
		System.out.println("Wpisz 1");
		Scanner input = new Scanner(System.in);
		int a = input.nextInt();
		switch(a)
		{
		case 1:
				System.out.println("Brawo wygrales talon..");
				break;
		default:
				System.out.println("Upss. Cos poszlo nie tak Sprobuj jeszcze raz");
				a = input.nextInt();
				break;
		}

	}

}

Wpisze 2 to mi pisze abym sprobowal jeszcze raz, wpisuje 1 i nic sie nie dzieje ^^

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

Sopelek - to podaj tą pętle,

@blowfish

Ja chciałbym wybrać po prostu np 2 , 3 wyjścia czyli 1 2 3 i każdy bo co innego robił

package Cosnietak;

import java.util.Scanner;

public class cosnietak 
{

	public static void main(String[] args) 
	{
		System.out.println("Wpisz '1'");
		Scanner s = new Scanner(System.in);
		int a = s.nextInt();
		if (a == 1)
		{
			System.out.println("Gratulacje wygrales talon");
		}
		else if(a == 2)
		{
			System.out.println("Gratulacje wygrales balon");
		}
		else if(a == 3)
		{
			System.out.println("Gratulacje wygrales baton");
		}
		else
		{
			System.out.println("Nie ma takiej nagrody Spróbuj jeszcze raz");
		}
	}

}

I w tym przypadku żeby kod poszedł od początku.

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

A jak tą metodę wywołać ?

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano
Zrób metodę, w niej utwórz input i switcha, a przy default wywołuj tą metodę.

 

rekurencja też nie byłaby tu najlepszym rozwiązaniem

package Cosnietak;

import java.util.Scanner;

public class cosnietak
{

    public static void main(String[] args)
    {
        System.out.println("Wpisz '1'");
        Scanner s = new Scanner(System.in);
        while(true)
        {
            int a = s.nextInt();
            if(a < 1 || a > 3)
                System.out.println("Coś tam źle")
            else break;
        }
        
        if (a == 1) //ja ma być ich rzeczywiście więcej i nie ma pomiędzy nimi żadnej zależności, którą można ubrać w pętlę lub jakąś operację arytmetyczną to użyj switcha.
        {
            System.out.println("Gratulacje wygrales talon");
        }
        else if(a == 2)
        {
            System.out.println("Gratulacje wygrales balon");
        }
        else if(a == 3)
        {
            System.out.println("Gratulacje wygrales baton");
        }
    }

}
Opublikowano

dałeś zmienną a pod loop czyli już warunki tego a nie czytają

 

i jak wpiszę inną liczbę np 4 to mi spami cały czas coś tam źle i nie mogę ponownie wpisać zmiennej

 

A mi chodzi uzyskać taki efekt:

 

Wyświetla mi wiadomość:

Wybierz nagrodę:

[1] Talon

[2] Balon

[3] Baton

wpisujesz liczbę 1 - 3 i otrzymujesz wiadomość i tak jest

ale jak wpiszę inną liczbę od tych to mi wyświetla. Ojej nie ma takiej nagrody spróbuj jeszcze raz i mogę ponownie wpisać wartość zmiennej żeby nie kompilować / startować kodu od początku.

Czyli wpiszę 4.

Wyświetla wiadomość

i mogę wpisać np 3 i da wiadomość że wygrałem baton

 

Kod:

package Cosnietak;

import java.util.Scanner;

public class cosnietak 
{

	public static void main(String[] args) 
	{
		System.out.println("Wpisz '1'");
		Scanner s = new Scanner(System.in);
		int a = s.nextInt();
		while(true)
        {
            if(a < 1 || a > 3)
                System.out.println("Coś tam źle");
            else break;
        }
		if (a == 1)
		{
			System.out.println("Gratulacje wygrales talon");
		}
		else if(a == 2)
		{
			System.out.println("Gratulacje wygrales balon");
		}
		else if(a == 3)
		{
			System.out.println("Gratulacje wygrales baton");
		}
		else
		{
			System.out.println("Nie ma takiej nagrody");
		}
	}

}

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

 

dałeś zmienną a pod loop czyli już warunki tego a nie czytają

 

i jak wpiszę inną liczbę np 4 to mi spami cały czas coś tam źle i nie mogę ponownie wpisać zmiennej

 

A mi chodzi uzyskać taki efekt:

 

Wyświetla mi wiadomość:

Wybierz nagrodę:

[1] Talon

[2] Balon

[3] Baton

wpisujesz liczbę 1 - 3 i otrzymujesz wiadomość i tak jest

ale jak wpiszę inną liczbę od tych to mi wyświetla. Ojej nie ma takiej nagrody spróbuj jeszcze raz i mogę ponownie wpisać wartość zmiennej żeby nie kompilować / startować kodu od początku.

Czyli wpiszę 4.

Wyświetla wiadomość

i mogę wpisać np 3 i da wiadomość że wygrałem baton

 

Kod:

package Cosnietak;

import java.util.Scanner;

public class cosnietak 
{

	public static void main(String[] args) 
	{
		System.out.println("Wpisz '1'");
		Scanner s = new Scanner(System.in);
		int a = s.nextInt();
		while(true)
        {
            if(a < 1 || a > 3)
                System.out.println("Coś tam źle");
            else break;
        }
		if (a == 1)
		{
			System.out.println("Gratulacje wygrales talon");
		}
		else if(a == 2)
		{
			System.out.println("Gratulacje wygrales balon");
		}
		else if(a == 3)
		{
			System.out.println("Gratulacje wygrales baton");
		}
		else
		{
			System.out.println("Nie ma takiej nagrody");
		}
	}

}

bez przesady, nawet źle to przepisałeś, masz w pętli wczytywać liczbę i tego else na końcu już nie trzeba, zmień tylko w petli komunikat 'coś zle' na to 'nie ma takiej nagrody'

dzis w nocy..

Opublikowano

Nie przepisałem tylko wkleiłem pętle. Jak wkleję twój kod to mam 3 błędy na warunkach że nie ma takiej zmiennej a else zostało na wszelki wypadek :P nic nie stoi na przeszkodzie aby on tam został

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

Nie przepisałem tylko wkleiłem pętle. Jak wkleję twój kod to mam 3 błędy na warunkach że nie ma takiej zmiennej a else zostało na wszelki wypadek :P nic nie stoi na przeszkodzie aby on tam został

zauważ różnice w pętlach i jaka ta różnica ma znaczenie, pętla sopela(? jak to sie odmienia):

 

  while(true)
        {
            int a = s.nextInt();
            if(a < 1 || a > 3)
                System.out.println("Coś tam źle")
            else break;
        }

 

a twoja pętla:

 

    while(true)
{
if(a < 1 || a > 3)
System.out.println("Coś tam źle");
else break;
}

ty wczytujesz tylko raz a pętla sopla będzie działała dopóki nie wczyta cyfry z przedziału 1-3

dzis w nocy..

Opublikowano

Teraz mam takie coś:

package Cosnietak;

import java.util.Scanner;

public class cosnietakmpcforum
{

    public static void main(String[] args)
    {
        System.out.println("Wpisz '1'");
        Scanner s = new Scanner(System.in);
        while(true)
        {
            int b = s.nextInt();
            if(b < 1 || b > 3)
            	System.out.println("Coś tam źle");
            else break;
        }
        int a = s.nextInt();
        if (a == 1)
        {
            System.out.println("Gratulacje wygrales talon");
        }
        else if(a == 2)
        {
            System.out.println("Gratulacje wygrales balon");
        }
        else if(a == 3)
        {
            System.out.println("Gratulacje wygrales baton");
        }
    }

}

I Log z konsolki:

Wpisz '1'
4
Coś tam źle
1
2
Gratulacje wygrales balon

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

nie działaj na 2 osobnych zmiennych, poza pętlą ustaw zmienną int a i w pętli wczytuj do tej zmiennej, a później w ifach sprawdzaj czy się równają 1/2/3.

mniej więcej tak:

 

int a;
Scanner s = new Scanner(System.in);
while(true)
{
a = s.nextInt();
if(a < 1 || a >3)
//komunikat jaki tam chcesz
else break;
}

dzis w nocy..

Opublikowano

Sensu Wielkie dzięki działa :) Wielki + dla Ciebie :)

 

//Temat do zamknięcia.

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

@Sopelek997

 

A mi chodzi uzyskać taki efekt:

 

Wyświetla mi wiadomość:

Wybierz nagrodę:

[1] Talon

[2] Balon

[3] Baton

wpisujesz liczbę 1 - 3 i otrzymujesz wiadomość i tak jest

ale jak wpiszę inną liczbę od tych to mi wyświetla. Ojej nie ma takiej nagrody spróbuj jeszcze raz i mogę ponownie wpisać wartość zmiennej żeby nie kompilować / startować kodu od początku.

Z tego wynika że chce powtórzyć tylko w sytuacji gdy podane zostaną złe dane, a tutaj pętla tylko odejmie przejrzystości bo prawdopodobnie zostanie wykonana tylko raz. Chociaż - jak kto woli.

 

Co do tematu - Lepiej zastąp te warunki switchem.

708121422388637873334.png

Opublikowano
dałeś zmienną a pod loop czyli już warunki tego a nie czytają

 

Pisałem z palca użerając się z tym forumowym edytorkiem, takie rzeczy to chyba jesteś w stanie wyłapać i na prawić.

 

sopela

 

sopla

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...