簡體   English   中英

Java 異常 [SWITCH && SCANNER]

[英]Java exception [SWITCH && SCANNER]

我試圖使用開關和掃描儀制作我的第一個 java 程序,但我無法修復返回我的錯誤。

錯誤:

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Operazioni.main(Operazioni.java:13)

代碼:

import java.util.Scanner;

public class Operazioni{
    public static void main(String[] args){

        int risultato;
        int select;
        int num1,num2;
        Scanner oggetti = new Scanner(System.in);
        System.out.println("Che operazione vuoi effettuare?");
        System.out.println("1. Addizione, 2. Sottrazione, 3. Moltiplicazione 4. Divisione");
        select = oggetti.nextInt();
        switch (select) {
        case 1:
        System.out.print("Inserisci il primo numero");
        num1 = oggetti.nextInt();
        System.out.print("Inserisci il secondo numero");
        num2 = oggetti.nextInt();
        risultato = num1 + num2;
        System.out.println("Il risultato dell'addizione è " + risultato);
        case 2:
        System.out.print("Inserisci il primo numero");
        num1 = oggetti.nextInt();
        System.out.print("Inserisci il secondo numero");
        num2 = oggetti.nextInt();
        risultato = num1 - num2;
        System.out.println("Il risultato della sottrazione è " + risultato);
        break;
        case 3:
        System.out.print("Inserisci il primo numero");
        num1 = oggetti.nextInt();
        System.out.print("Inserisci il secondo numero");
        num2 = oggetti.nextInt();
        risultato = num1 * num2;
        System.out.println("Il risultato della moltiplicazione è " +risultato);
        case 4:
        System.out.print("Inserisci il primo numero");
        num1 = oggetti.nextInt();
        System.out.print("Inserisci il secondo numero");
        num2 = oggetti.nextInt();
        risultato = num1 / num2;
        System.out.println("Il risultato della divisione è " + risultato);
        default:
        System.out.println("Errore, scelta non esistente");
        }
    }
}

請原諒我編寫代碼的順序不好。

您的 switch-case 語法缺少中斷; 語句試試這個代碼:

import java.util.Scanner;

public class Operazioni {
    public static void main(String[] args) {

        int risultato;
        int select;
        int num1, num2;
        Scanner oggetti = new Scanner(System.in);
        System.out.println("Che operazione vuoi effettuare?");
        System.out.println("1. Addizione, 2. Sottrazione, 3. Moltiplicazione 4. Divisione");
        select = oggetti.nextInt();
        switch (select) {
        case 1:
            System.out.print("Inserisci il primo numero");
            num1 = oggetti.nextInt();
            System.out.print("Inserisci il secondo numero");
            num2 = oggetti.nextInt();
            risultato = num1 + num2;
            System.out.println("Il risultato dell'addizione è " + risultato);
            break;

        case 2:
            System.out.print("Inserisci il primo numero");
            num1 = oggetti.nextInt();
            System.out.print("Inserisci il secondo numero");
            num2 = oggetti.nextInt();
            risultato = num1 - num2;
            System.out.println("Il risultato della sottrazione è " + risultato);
            break;

        case 3:
            System.out.print("Inserisci il primo numero");
            num1 = oggetti.nextInt();
            System.out.print("Inserisci il secondo numero");
            num2 = oggetti.nextInt();
            risultato = num1 * num2;
            System.out.println("Il risultato della moltiplicazione è " + risultato);
            break;

        case 4:
            System.out.print("Inserisci il primo numero");
            num1 = oggetti.nextInt();
            System.out.print("Inserisci il secondo numero");
            num2 = oggetti.nextInt();
            risultato = num1 / num2;
            System.out.println("Il risultato della divisione è " + risultato);

        default:
            System.out.println("Errore, scelta non esistente");
        }
    }
}

盡管您忘記在 case 1,3 & 4 中添加 break 語句,但您的代碼是正確的

您已經使用scannerobj.nextInt() 來讀取用戶輸入, scanner 類的nextInt() 方法,從用戶讀取int 值,我猜在您的情況下,用戶輸入的是字符串而不是整數,這會導致此錯誤

這是工作代碼(附加輸出 SS):

import java.util.Scanner;

public class HelloWorld {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int risultato;
        int select;
        int num1,num2;
        Scanner oggetti = new Scanner(System.in);
        System.out.println("Che operazione vuoi effettuare?");
        System.out.println("1. Addizione, 2. Sottrazione, 3. Moltiplicazione 4. Divisione");
        select = oggetti.nextInt();
        switch (select) {
        case 1:
            System.out.print("Inserisci il primo numero");
            num1 = oggetti.nextInt();
            System.out.print("Inserisci il secondo numero");
            num2 = oggetti.nextInt();
            risultato = num1 + num2;
            System.out.println("Il risultato dell'addizione è " + risultato);
            break;
        case 2:
            System.out.print("Inserisci il primo numero");
            num1 = oggetti.nextInt();
            System.out.print("Inserisci il secondo numero");
            num2 = oggetti.nextInt();
            risultato = num1 - num2;
            System.out.println("Il risultato della sottrazione è " + risultato);
            break;
        case 3:
            System.out.print("Inserisci il primo numero");
            num1 = oggetti.nextInt();
            System.out.print("Inserisci il secondo numero");
            num2 = oggetti.nextInt();
            risultato = num1 * num2;
            System.out.println("Il risultato della moltiplicazione è " +risultato);
            break;
        case 4:
            System.out.print("Inserisci il primo numero");
            num1 = oggetti.nextInt();
            System.out.print("Inserisci il secondo numero");
            num2 = oggetti.nextInt();
            risultato = num1 / num2;
            System.out.println("Il risultato della divisione è " + risultato);
            break;
        default:
            System.out.println("Errore, scelta non esistente");
        }

    }

}

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM