Diskuze: Vypsání textu víckrát
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 12 zpráv z 12.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Napíšu pseudokód, protože Javu neumím:
string number = číslo_které_zadáš;
int count = int.Parse(number);
for(int i = 0; i < count; i++)
{
Vypiš_do_konzole("*");
}
Todle nejde do string nemůžeš uložit int
Neříkej mi, že v Jave neexistuje funkce na parsování textu do čísla...
Když už máš úkol v Javě, tak by sis mohl pročíst alespoň základní kontrukce Javy, ne? To co ty hledáš, je ve 3. díle Základní konstrukce jazyka Java:
int a = Integer.parseInt(number);
Zkus něco takového
String číslo = "5";
int počet = Integer.parseInt(číslo);
for (int i = 0; i < počet; i++)
System.out.print("*");
Ale to jsou úplné základy. Doporučuji si přečíst http://www.itnetwork.cz/java/zaklady. Tohle by měl každý umět.
Možné řešení:
import java.util.Scanner;
public class Stars {
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
String vstup = null;
boolean pokracovat = true;
do {
System.out.print("Zadej celé kladné číslo (pro konec 0): ");
vstup = scanner.next();
try {
int cislo = Integer.parseInt(vstup);
if (cislo == 0) {
pokracovat = false;
} else if (cislo < 0) {
System.out.println("Zadané číslo nebylo kladné!");
} else {
StringBuilder sb = new StringBuilder();
sb.append(cislo);
sb.append(" - ");
for (int i = 0; i < cislo; i++) {
sb.append("*");
}
System.out.println(sb.toString());
}
} catch (Exception e) {
System.out.println("Chybný vstup!");
}
} while (pokracovat);
System.out.println("Konec");
}
}
Vysvětlení:
Tato část kódu řeší tvůj dotaz. Zbytek je načítání a ošetření vstupu od uživatele.
StringBuilder sb = new StringBuilder();
sb.append(cislo);
sb.append(" - ");
for (int i = 0; i < cislo; i++) {
sb.append("*");
}
System.out.println(sb.toString());
Vytvořím objekt typu StringBuilder (pro rychlejší sestavování textového řetězce) a v cyklu for potom přidám počet hvězdiček podle velikosti zadaného číslo.
Výstup programu:
Zadej celé kladné číslo (pro konec 0): 3
3 - ***
Zadej celé kladné číslo (pro konec 0): -2
Zadané číslo nebylo kladné!
Zadej celé kladné číslo (pro konec 0): 99999999999999999999999999999999
Chybný vstup!
Zadej celé kladné číslo (pro konec 0): lisahfdasůhfa
Chybný vstup!
Zadej celé kladné číslo (pro konec 0): 11
11 - ***********
Zadej celé kladné číslo (pro konec 0): 0
Konec
Já nechci nějak bejt chytrej ale ted mi doslo že sem byl dost blbej a ty
si to udělal zbytečně složitě vlastně stačí udělat for cyklus a tam
daš to číslo a tolikrát to vypíše hvězdičku
int a = 4;
for(int i = 0; i < a; i++)
{
System.out.print("*");
}
Vypis teda bude ****
Omlouvám se za zdržování
Zbytečná složitost No, rozdíl mezi mým a tvým programem je ten, že ty to číslo musíš napsat ve zdrojovém kódu, ale já ho můžu načíst za běhu programu
Sorry za mínus, chtěl jsem se podívat kdo ti dal mínus a když jsem skrýval jeho jméno omylem jsem se uklepnul, nic si z toho prosím nědělej. A když už jsem tady, tak tě taky nasměruju ... podle mě bys ale měl začít spíš u problematiky programování a uvažování jako programátor... podmínky, cykly, switch/case ... musíš hlavně přemýšlet a až potom v klidu kódit... jinak přeju hodně zdaru. Hoj
Arrays.fill() by malo tiez fungovat, neviem ci je rychlejsie alebo pomalsie.
int length = new Scanner(System.in).nextInt();
char[] array = new char[length];
Arrays.fill(array, '*');
System.out.println(new String(array));
Zobrazeno 12 zpráv z 12.