gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:49:30 24 4
gpt4 key购买 nike

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com