所以我想让用户输入一个数字;变成整数。这应该在数组中查找并调用数字,由于某种原因,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.");
}
}
答案 0 :(得分:0)
你做
dag[maandbeg] = datumbegmax;
由于int datumbegmax = 0;
,会将数组值覆盖为0
当然,System.out.println(dag[maandbeg]);
打印0然后