Permalänk
Medlem

Förhindra crash java

Hej!

Jag har funderat lite på hur jag kan förhindra mitt program att crasha om användaren matar in fel tecken, dvs char istället för int tex.

import java.util.*; public class exempel { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int choice; System.out.println("n1) Välj hit \n2) Välj dit"); choice = scan.nextInt(); if(choice != integer){ System.out.println("Fel tecken"); }else System.out.println("Rätt tecken"); } }

Exemplet ovan fungerar alltså INTE.

Tack för att du tog dig tid

Permalänk
Medlem
Skrivet av JJ72:

Hej!

Jag har funderat lite på hur jag kan förhindra mitt program att crasha om användaren matar in fel tecken, dvs char istället för int tex.

import java.util.*; public class exempel { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int choice; System.out.println("n1) Välj hit \n2) Välj dit"); choice = scan.nextInt(); if(choice != integer){ System.out.println("Fel tecken"); }else System.out.println("Rätt tecken"); } }

Exemplet ovan fungerar alltså INTE.

Tack för att du tog dig tid

Det är för att den förväntar sig en int vid:

choice = scan.nextInt();

Ta en titt på try/cache
https://docs.oracle.com/javase/tutorial/essential/exceptions/...

Visa signatur

Arch - Makepkg, not war -||- Gigabyte X570 Aorus Master -||- GSkill 64GiB DDR4 14-14-15-35-1T 3600Mhz -||- AMD 5900x-||- Gigabyte RX6900XT -||- 2x Adata XPG sx8200 Pro 1TB -||- EVGA G2 750W -||- Corsair 570x -||- O2+ODAC-||- Sennheiser HD-650 -|| Boycott EA,2K,Activision,Ubisoft,WB,EGS
Arch Linux, one hell of a distribution.

Permalänk
Medlem

@Commander:
Tackar så väldans.

Det ska jag kolla direkt

Permalänk
Medlem
Skrivet av JJ72:

Hej!

Jag har funderat lite på hur jag kan förhindra mitt program att crasha om användaren matar in fel tecken, dvs char istället för int tex.

import java.util.*; public class exempel { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int choice; System.out.println("n1) Välj hit \n2) Välj dit"); choice = scan.nextInt(); if(choice != integer){ System.out.println("Fel tecken"); }else System.out.println("Rätt tecken"); } }

Exemplet ovan fungerar alltså INTE.

Tack för att du tog dig tid

Använd scanner hasnext.
Här är ett exempel:

Scanner s = new Scanner(System.in);
int choice = 0;

if(s.hasNextInt())
{
choice = s.nextInt();
}

s.close();

Visa signatur

/M

Permalänk
Medlem
Skrivet av Marowak:

Använd scanner hasnext.
Här är ett exempel:

Scanner s = new Scanner(System.in);
int choice = 0;

if(s.hasNextInt())
{
choice = s.nextInt();
}

s.close();

AAhhh, coolt.

Tack så mycket, det blev jättebra