我只希望出现“ Jan支出”,但是只有支出出来。我该怎么做?Jan来自我的monthsArrays。缺少什么吗?
import java.util.Scanner;
public class Project {
static int choice;
public static void main(String[] args) {
{ Scanner input = new Scanner(System.in);
System.out.println("***************Expenditure***************");
System.out.println("1)Enter monthly expenses");
System.out.println("2)Display detailed expenditure by month");
System.out.println("3)Quick glance at monthly expenses");
System.out.println("4)Exit");
System.out.println("Please select your choice <1-3>:");
choice = input.nextInt();
switch (choice) {
case 1:
int count = 0;
String[] monthsArray = { "", "Jan", "Feb", "Mar", "Apr", "May",
"Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec" };
System.out.println("*******************************************");
System.out.println("\t\t\t\t");
System.out.print("Enter month <1 for Jan - 12 for Dec>:");
int month = input.nextInt();
for (int i=0; i < monthsArray.length; i++)
String monthChoice = monthsArray[month - 1];
System.out.println("-------------------------------------");
System.out.println(monthChoice + "expenditure (max 10 items)");
这是我目前得到的输出
*_ __ 支出 _ __ *
1)输入月度费用
2)按月显示详细支出
3)快速浏览每月费用
4)退出
请选择<1-3>:1
输入月份<1月的1月-12月的12月>:1
支出(最多10项)
输入项目1:
如您所见,数组“ Jan”没有出现。
从您的外观来看monthsArray
,第一个元素是空白字符串。请记住,数组是从零开始的,您要求用户输入介于1到12之间的一个月(这很好,因为没人认为1月是第0个月,对吧?)。在稍后的代码中,您将执行以下操作:
String monthChoice = monthsArray[month - 1];
但是,您的数组实际上包含13个元素,因为您添加了该空格,因此在这种情况下,实际上可以安全地使用未更改的month
索引,如下所示:
String monthChoice = monthsArray[month];
或者,删除数组开头的空字符串,并按monthChoice
原样保留行(取决于实现的工作方式。这纯粹是您的选择)。
一些注意事项:
您当前monthArray
在switch语句的主体中声明您的身份,这是不必要的。最好在方法的顶部声明它,或者甚至更好地将其声明为类中的常量,如下所示:
private static final String[] monthsArray = { "", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec" };
另外,这一行:
for (int i=0; i < monthsArray.length; i++)
是没有用的。我不知道这是否是未完成的解决方案的一部分,但是它所要做的只是重复紧随其后的语句,据我所知,这是不必要的。基本上与此相同:
for (int i=0; i < monthsArray.length; i++){
String monthChoice = monthsArray[month - 1];
}
因此,您应该安全地摆脱它。
问题内容: 我想创建一个(非匿名)函数,该函数按键按字母顺序对对象数组进行排序。我只编写简单的JavaScript代码,因此框架至少没有帮助我。 问题答案: 这个怎么样? 这使您可以指定用于对数组进行排序的键,这样您就不仅限于硬编码的名称排序。它将对所有共享属性的对象数组进行排序,这些属性将用作键。我相信那是您要找的东西?
本文向大家介绍在Java中使用Collections.reverseOrder()对ArrayList的项目进行排序,包括了在Java中使用Collections.reverseOrder()对ArrayList的项目进行排序的使用技巧和注意事项,需要的朋友参考一下 为了在Java中使用Collections.reverseOrder()对ArrayList的项目进行排序,我们需要使用Collec
本文向大家介绍编写Golang程序以使用冒泡排序对数组进行排序,包括了编写Golang程序以使用冒泡排序对数组进行排序的使用技巧和注意事项,需要的朋友参考一下 定义:冒泡排序是最简单的排序算法,通过以错误顺序重复交换相邻元素来工作。 例子 输入arr = [7、5、1、6、3] 第一次迭代=> swap(7,5)=> swap(7,1)=> swap(7,6)=> swap(7,3)=> [5,1
问题内容: 我的数组是这样的: 我想将其转换为: 因此,基本上,分组依据。 我尝试着: 我只是不知道如何处理相似组值的分组。 问题答案: 首先,在JavaScript中,使用遍历数组通常不是一个好主意。 因此,您可以尝试执行以下操作: 在这里使用中间对象有助于加快处理速度,因为它可以避免嵌套循环搜索数组。另外,因为使用迭代遍历对象(而不是数组)是合适的。 附录 FWIW,如果要避免在结果数组中出现
问题内容: 我有一个琐碎的Maven项目: 当我通过构建项目时,它失败了: 有没有办法来解决这个问题? 问题答案: 可以将maven中使用的java版本配置为JDK / 11以下的任何版本,并使用来指定9,10,11的发行版而没有任何明确的依赖关系。
问题内容: 在过去的两年中,我一直在编写Java,现在,我开始用python(另外)进行编写。 问题是,当我查看我的Python代码时,似乎有人试图将Java代码转换为python格式,但结果却很糟糕,因为- python不是Java。 关于如何摆脱“用Python编写Java”模式的任何技巧? 谢谢! 问题答案: 您可能会考虑将自己沉浸在Python范例中。最好的方法是首先了解他们的知识,然后通