Trädvy Permalänk
Medlem
Registrerad
Dec 2014

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

Trädvy Permalänk
Medlem
Plats
#Archlinux
Registrerad
Jun 2007
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/...

Arch - Makepkg, not war -||- Asus Crosshair Hero VI -||- GSkill 16GiB DDR4 15-15-15-35-1T 3600Mhz -||- AMD 1600x @ 4.1GHz -||- nVidia MSI 970 Gaming -||- Samsung 850 Pro -||- EVEGA G2 750W -||- Corsair 570x -||- Asus Xonar Essence STX -||- Sennheiser HD-650 -||
Arch Linux, one hell of a distribution.

Trädvy Permalänk
Medlem
Registrerad
Dec 2014

@Commander:
Tackar så väldans.

Det ska jag kolla direkt

Trädvy Permalänk
Medlem
Plats
Götet, typ
Registrerad
Okt 2004
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();

/M

Trädvy Permalänk
Medlem
Registrerad
Dec 2014
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