java - 用户输入Integer,用这个Int调用数组时总是返回0?

标签 java arrays input integer

所以我想让用户输入一个数字;它变成一个整数。这应该在数组中查找并调用数字,由于某种原因,int 总是变成 0。我做错了什么?

这是完整的代码;前 20 行是问题所在。

 import java.util.*;

public class test {

    /**
     * @param args
     */
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        // data tabellen
        int[] dag = {0,31,28,31,30,31,30,31,31,30,31,30,31};


            //input begin       
            int datumbegmax = 0;
            System.out.println("Startdate in month? From 1 to 12.");
            int maandbeg = input.nextInt(); 
            dag[maandbeg] = datumbegmax;
            System.out.println(dag[maandbeg]);
            if (maandbeg < 1 || maandbeg > 12) {
                System.out.println("ERROR, Start over.");   }
            System.out.println("Startdate in days? From 1 to 31.");
            int datumbeg = input.nextInt();
            if (datumbeg < 1 || datumbeg > datumbegmax) {
                System.out.println("ERROR, Start over.");
             }
            int urenbeg = 0 ;
            System.out.println("Starting time in hours? From 0 to 24.");
            urenbeg = input.nextInt();
            if (urenbeg < 0 || urenbeg > 24) {
                System.out.println("ERROR, Start over.");
            }
            int minutenbeg = 0 ; 
            System.out.println("Starting time in minutes? From 0 to 60.");
            minutenbeg = input.nextInt();
            if (minutenbeg < 0 || minutenbeg > 60) {
                System.out.println("ERROR,  Start over.");
            }

            //input eind
            int datumeindmax = 0;
            System.out.println("Einddatum in maand? Van 1 tot 12.");
            int maandeind = dag[input.nextInt()];
            dag[maandeind] = datumeindmax;
            if (maandeind < 1 || maandeind > 12) {
                System.out.println("FOUT, Begin opnieuw.");
            }
            System.out.println("Einddatum in dagen? Van 1 tot 31.");
            int datumeind = input.nextInt();
            if (datumeind < 1 || datumeind > datumeindmax) {
                System.out.println("FOUT, Begin opnieuw.");
            }
            int ureneind;
            System.out.println("Eindtijd in uren? Van 0 tot 24.");
            ureneind = input.nextInt();
            if (ureneind < 0 || ureneind > 24) {
                System.out.println("FOUT, Begin opnieuw.");
            }
            int minuteneind;
            System.out.println("Eindtijd in minuten? Van 0 tot 60.");
            minuteneind = input.nextInt();
            if (minuteneind < 0 || minuteneind > 60) {
                System.out.println("FOUT, Begin opnieuw.");
            }
            int maand = maandeind - maandbeg;
            int datum = datumeind - datumbeg;
            if (datum < 0){datum = datum + dag[maandbeg];}
            int uren = ureneind - urenbeg;
            if (datum > 0) {uren = uren + datum*24;}
            int minuten = minuteneind - minutenbeg;
            if (minuten < 0){
                minuten = minuten + 60;
                uren = uren - 1;
            }
            System.out.println("Total time:  "+datum+" days, "+uren+" hours and "+minuten+" minutes.");

    }

}

最佳答案

你愿意

dag[maandbeg] = datumbegmax;

用 0 覆盖数组值,因为 int datumbegmax = 0;

当然,System.out.println(dag[maandbeg]); 会打印 0

关于java - 用户输入Integer,用这个Int调用数组时总是返回0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15220867/

相关文章:

java - 如何循环用户输入直到输入整数?

java - 使用 getText 获取整数

java - LibGDX 不断给我这个错误 : "ERROR BAD LOGIC GAMES", 我该如何解决这个问题?

Java 小程序无法访问同一网络服务器上的非公共(public)文件

java - 在数组中搜索字符串

python - 使用用户输入查找列表中的元素

java - 方法重载不明确

java - eclipse 方法参数中的 Final

Python/Numpy - 使用变量从二维数组中提取二维子数组

c# - 图片框转字节数组