Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用户输入整数,当使用此整数调用数组时总是返回0?_Java_Arrays_Input_Integer - Fatal编程技术网

Java 用户输入整数,当使用此整数调用数组时总是返回0?

Java 用户输入整数,当使用此整数调用数组时总是返回0?,java,arrays,input,integer,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);

所以我想让用户输入一个数字;这会变成一个整数。这应该在数组中查找并调用数字,出于某种原因,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.");

    }

}
是吗

由于int-datumbegmax=0,它用0覆盖数组值


当然,System.out.printlndag[maandbeg];打印0,然后在发布之前本地化并压缩代码。@zvzdhk代码已明确本地化:D@KennyTM我相信每个人都明白我的意思:还是太地方化了;
dag[maandbeg] = datumbegmax;