【问题标题】:using static boolean method [duplicate]使用静态布尔方法[重复]
【发布时间】:2015-12-15 23:23:19
【问题描述】:

我的代码:

import java.util.Scanner;

public class MonthMapper{
    static String month;
    static int month_num;

    public static boolean isMonthNumber (String str) { 
        month = str;
        month_num = Integer.parseInt(month);
        return (month_num >= 0 && month_num < 12); 
    } 

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter Month: ");
        month = sc.next();
        System.out.println (isMonthNumber (Integer.toString(month_num)));
    }
}

我必须编写一个静态类方法boolean isMonthNumber(String str),它将字符串作为输入并返回布尔值。如果输入字符串表示 1 到 12 之间的整数值,则该方法返回 True,否则该方法返回应返回 False

目前由于某种原因,即使我输入大于 12 的值,我的程序也总是返回 true。

【问题讨论】:

  • 没有。如果我输入1,它将返回 true
  • 调用Integer.toString(month_num)month_num的值是多少?你怎么看?
  • 你是对的,但是当我输入一个大于 12 的数字时,它也返回 true
  • @Sotirios Delimanolis 它应该将用户输入的整数转换回字符串以便可以打印,因此它可以是用户输入的任何整数
  • 调用Integer.toString(month_num)month_num的当前具体值是多少?

标签: java methods static boolean


【解决方案1】:

您将mounth_num 变量传递给方法,但month 变量具有读取值。

替换为:

public static void main(String[] args){
  Scanner sc = new Scanner(System.in);
  System.out.print("Enter Month: ");
  System.out.println(isMonthNumber (sc.next()));
}

【讨论】:

  • 我明白了,但现在我必须输入两次才能让程序工作,我怎样才能让它只需要输入一次?编辑:没关系,我意识到这是一个多么愚蠢的问题。非常感谢您的迅速答复! :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
相关资源
最近更新 更多