Pilnie potrzeban pomoc przy zadania Java

Odpowiedz Nowy wątek
2018-09-29 11:32
0

Dzien dobry ;)
Bardzo bym prosił o pomoc przy zadaniu o następującej treści:
"5. Pobierz od użytkownika dowolny tekst, następnie pobierz liczbę. Następnie spytaj, czy wydrukować dany tekst. W zależności od odpowiedzi, 1 oznacza tak, 2 oznacza nie, wykonaj zadanie , tzn. wydrukuj tyle razy, jaką liczbę podał użytkownik. Jeśli użytkownik wpisze coś innego niż 1 lub 2, wypisz „nie zrozumiałem, wybierz odpowiedź jeszcze raz”."
Wszystko szło "caaałkiem" niezle tzn udało mi sie jakos przebrnąc przez kolejne linie kodu aż doszedłem do pewnego momentu problem polega na tym że nie wiem jak wydrukmować tekst x ilości razy(taka ilość razy jaką poda użytkownik).
Tu jest mój kod wszystkie ewentułalne uwagi przyjmę z radością proszę wezcie pod uwagę to że dopiero się ucze.

import java.util.Scanner;

public class main {
    public static void main (String[]args){
        Scanner scanner = new Scanner(System.in);
        String name,surename;
        int phtoneNumber;

        System.out.println("What is yours name? ");
        name = scanner.next();

        System.out.println("What is your surename? ");
        surename = scanner.next();

        System.out.println("Can you give me your phone nummber? ");
        phtoneNumber = scanner.nextInt();

        System.out.println("Print?");

        System.out.println("1 = Hell Yea!!");

        System.out.println("2 = Nope");
        int a;
                a=scanner.nextInt();
        int copy;

         if (a==1) {
             boolean cos = true;

         }
       else if (a==0);
if(a==1){
    System.out.println("How much coppy you want?");
            }
            copy=scanner.nextInt();
 if((copy==1))
     for(int i=0; i>=copy; i++);
        System.out.println(name);

        System.out.println(copy);

    }
}

Tutaj jest kod który próbowałem napisać przy pomocy rozwiązania ale dalej nie drukuje tyle razy ile powinnien.

import java.util.Scanner;

public class main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String name, surename;
        int phtoneNumber;
        int j = 0;

        System.out.println("What is yours name? ");
        name = scanner.next();

        System.out.println("What is your surename? ");
        surename = scanner.next();

        System.out.println("Can you give me your phone nummber? ");
        phtoneNumber = scanner.nextInt();

        System.out.println("Print?");

        System.out.println("1 = Hell Yea!!");

        System.out.println("2 = Nope");
        int a;
        a = scanner.nextInt();
        int copy;
        System.out.println("How much coppy you want?");
        copy = scanner.nextInt();

        if (a == 1) {
            boolean cos = true;

        } else if (a == 0) ;
        switch (a) {
            case 1:
                do {
                    System.out.println(name);
                    j++;
                }
                while (j > copy);
                break;
        }

Pozostało 580 znaków

2018-09-29 12:56
1

Masz tu taj błąd:

 if((copy==1))
     for(int i=0; i>=copy; i++);
        System.out.println(name);

        System.out.println(copy);

if() sprawdzi, czy jest warunek true, po czym wywoła for(); - a że for ma ; na końcu ti się wykona, nie robiąc nic, po czym wdrukuje raz name i raz copy.

Dobrą praktyką w javie jest używane nawiasów {} nawet dla jednolinjkowych ifów, twój kod powinien wyglądać tak:


 if((copy==1)){ //otwarty 1 nawias
     for(int i=0; i>=copy; i++){ //otwarty 2 nawias
        System.out.println(name);

        System.out.println(copy);
 }//zamknięty drugi nawias
} // zamknięty 1 nawias

Pozostało 580 znaków

2018-09-29 18:46
0
Black007 napisał(a):

Masz tu taj błąd:

 if((copy==1))
     for(int i=0; i>=copy; i++);
        System.out.println(name);

        System.out.println(copy);

if() sprawdzi, czy jest warunek true, po czym wywoła for(); - a że for ma ; na końcu ti się wykona, nie robiąc nic, po czym wdrukuje raz name i raz copy.

Dobrą praktyką w javie jest używane nawiasów {} nawet dla jednolinjkowych ifów, twój kod powinien wyglądać tak:


 if((copy==1)){ //otwarty 1 nawias
     for(int i=0; i>=copy; i++){ //otwarty 2 nawias
        System.out.println(name);

        System.out.println(copy);
 }//zamknięty drugi nawias
} // zamknięty 1 nawias

Dzięki za radę ;). Wiesz usunełem to ";" i dalej nic nie robi nawet nie wydrukuje raz "nama"

Pozostało 580 znaków

2018-09-29 20:12
0

Zobacz, co robisz w kodzie?
Najpierw pobierasz copy = - i tutaj użytkownik np. wpisuje ze chce 5
to nigdy nie wejdzie do pętli if, bo zrobiłeś, że tylko jeśli copy == 1 to wywołaj pętle

W ogóle co tu miałeś na myśli:


      if (a==1) {
             boolean cos = true;

         }
       else if (a==0);
if(a==1){
    System.out.println("How much coppy you want?");
            }
            copy=scanner.nextInt();
 if((copy==1))

Po co jest ten boolean cos?


Pozostało 580 znaków

2018-09-29 20:12
2

Przede wszystkim co ma robić ten fragment kodu?

 boolean cos = true;

Po tym jak wpisujesz liczbę, tj.

int a;
a = scanner.nextInt();

musisz sprawdzić, czy ta liczba to 1czy 2, czy jakaś inna. Możesz np. użyć pętli:

while ((a != 1) && (a != 2)){
            System.out.println("nie zrozumiałem, wybierz odpowiedź jeszcze raz");
            a = scanner.nextInt();
}

tutaj jeśli a to liczba inna niż 1 albo 2 to pętla będzie się wykonywała dopóki nie wpisze się jednej ze wspomnianych liczb. Teraz wystarczy okodować przypadek dla a == 1 bo dla dwójki chyba nie trzeba nic robić. Czyli mamy:

      if (a == 1){
            System.out.println("How much coppy you want?");
            copy = scanner.nextInt();
        }

W tym ifie musisz jeszcze wyświetlić odpowiednią ilość razy. Tutaj wystarczy for:

for (int i = 0; i < copy; i++)

I wszystko powinno działać poprawnie.

PS. Popraw sobie anielskie słówka. Powinno być surname i phone.

Pozostało 580 znaków

2018-09-30 13:36
0

Z gory dzięki za wszystkie rady i pomoc ;)
To tak próbowałem na metodzie boolean oprzeć ifa że jeżeli ten booaln coś równa się jeden to wtedy wydrukj "ile chcesz kopii" ale przypisując boolean 1 wychodziło mi że mam użyć integra używając int wychodziło mi ze mam użyć klasy boolean. Trochę to nie zrozumiale więc spróbuje pokazac jak to robiłem na kodzie.

System.out.println("2 = Nope");
        boolean trueFalse;
        trueFalse=scanner.nextBoolean();
        if(trueFalse==1){  W tym miejscu wychodziło mi że nie mogę metodzie bool przypisac wartości liczbowe.
            System.out.println("Ile chcesz?");
        }

Teraz próbowałem to odtworzyć w w kodzie ale mi nie wychodzi wcześniej jak przypisywałem do inta jeden lub dwa wychodziło mi że mam użyc metody boolean nie wiem coś namieszałem. Dzięki za pomoc sory za zamieszanie. Teraz usuwając boolean widzę że nic on nie robi. Jeżeli jeszcze raz napotkam się z tym problemem podziele się tym.
Pisząc dalej kod usuwając boolean i używając while pomogłeś mi usunąc jeden problem ale cholera nie wiem dalej jak wydrukować więcej ilości kopii bo pętla for zwiększa tam do jakiejś wartości "i" i przestaje działac ale nie drukuje tego co bym chciał. Spróbowałem Strinigi przerobić na tablice ale dalej nie drukuje więcej niż raz. Przechodzi tylko po zawartości tablicy cholera nie mam pomysłu jak to zrobić żeby działało. Tu jest nowy kod;

import java.util.Scanner;

public class main {
    public static void main (String[]args){
        Scanner scanner = new Scanner(System.in);
        String text[]=new String[2];
        int phoneNumber;

        System.out.println("What is yours name? ");
        text[0] = scanner.next();

        System.out.println("What is your surename? ");
        text[1] = scanner.next();

        System.out.println("Can you give me your phone nummber? ");
        phoneNumber = scanner.nextInt();

        System.out.println("Print?");

        System.out.println("1 = Hell Yea!!");

        System.out.println("2 = Nope");
        int a;
        int copy;
                a=scanner.nextInt();
                while (a!=1&a!=2){
                    System.out.println("Nie zrozumiałem podaj jeszcze raz czy chcesz drukowac czy nie.");
                    a=scanner.nextInt();
                }
                if(a==1){
                    System.out.println("How many copy you want?");
                    copy=scanner.nextInt();
                    for(int i=0; i<copy;i++){
                        System.out.println(text[i]);
                    }
                }

Sory za ten angielski na razie pracuje nad javą i matematyką a srednio mi to idzie jak uda mi się z tym zawalczyć wezmę się za Angielski z góry dzięki za pomoc.

edytowany 1x, ostatnio: Misza_71, 2018-09-30 13:36

Pozostało 580 znaków

2018-09-30 14:14
1

Załóżmy że chcę 4 kopii. Co robi ten kod?

for(int i=0; i<copy;i++){
                        System.out.println(text[i]);
                    }

Próbuje wyświetlić: text[0], text[1], text[2], text[3], a istnieje tylko text[0] i text[1].

Powinno być:

for(int i=0; i<copy;i++){
                        System.out.println(text[0]); <--- imie
                        System.out.println(text[1]); <--- nazwisko
                        System.out.println(phoneNumber); <--- numer
}
edytowany 1x, ostatnio: matelener, 2018-09-30 14:15

Pozostało 580 znaków

2018-09-30 14:17
0

Dzięki wielkie!!! Niech Ci Bóg w dzieciach wynagrodzi niech będzie dużo i brzydkie. A tak na prawdę dziękuję wam wszystkim za pomoc i za poswięcony czas ;) Dzięki Wieeelkie!

Pozostało 580 znaków

2018-09-30 14:23
0

Jak już utworzyłem ten wątek to zapytam się o coś bo czesto nie mogę sobie z tym poradzić i muszę przepisywać kod.

import java.util.Scanner;

public class main {
    public static void main (String[]args){
        Scanner scanner = new Scanner(System.in);
        String text[]=new String[2];
        int phoneNumber;

        System.out.println("What is yours name? ");
        text[0] = scanner.next();

        System.out.println("What is your surename? ");
        text[1] = scanner.next();

        System.out.println("Can you give me your phone nummber? ");
        phoneNumber = scanner.nextInt();

        System.out.println("Print?");

        System.out.println("1 = Hell Yea!!");

        System.out.println("2 = Nope");
        int a;
        int copy;
                a=scanner.nextInt();
                while (a!=1&a!=2){
                    System.out.println("Nie zrozumiałem podaj jeszcze raz czy chcesz drukowac czy nie.");
                    a=scanner.nextInt();
                }
                if(a==1){
                    System.out.println("How many copy you want?");
                    copy=scanner.nextInt();
                    for(int i=0; i<copy;i++){
                        System.out.println("******************************");
                        System.out.println("Name: "+text[0]);
                        System.out.println("Surname: "+text[1]);
                        System.out.println("Phone Number: "+phoneNumber);
                        System.out.println("******************************");
                    }
                    else if (a==2) Tutaj mi wywala błąd "else" without if. |Jak użwyam samego elsa wychodzi ten sam komentarz. Co robie zle?
                    System.out.println();
                }

    }
}
edytowany 1x, ostatnio: Misza_71, 2018-09-30 14:24

Pozostało 580 znaków

2018-10-01 09:00
1

@Misza_71: Brakuje Ci jeszcze jednej klamry zamykającej przed else if.

Pozostało 580 znaków

2018-10-01 09:00
1
                    if(a==1){
                    System.out.println("How many copy you want?");
                    copy=scanner.nextInt();
                    for(int i=0; i<copy;i++){
                        System.out.println("******************************");
                        System.out.println("Name: "+text[0]);
                        System.out.println("Surname: "+text[1]);
                        System.out.println("Phone Number: "+phoneNumber);
                        System.out.println("******************************");
                    }
                    else if (a==2) Tutaj mi wywala błąd "else" without if. |Jak użwyam samego elsa wychodzi ten sam komentarz. Co robie zle?
                    System.out.println();
                }

Policz liczbę klamer, czy na pewno w dobrym miejscu wstawiasz else?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0