cut*_*tjm 7 java printing boolean
我尝试了一些不同的方法,比如print(boolean isLeapYear)和其他一些方法,但我无法弄清楚如何使它工作.它总是说我有一个缺少的类(布尔是原始的,它需要一个吗?)无论如何,如果isLeapYear if-else语句是错误的,我不担心那些..我只需要弄清楚如何打印超出布尔值; 任何帮助/点在正确的方向非常感谢=]
import java.util.Scanner;
public class booleanfun {
boolean isLeapYear;
public static void main(String[] args)
{
System.out.println("Enter a year to determine if it is a leap year or not: ");
Scanner kboard = new Scanner(System.in);
int year = kboard.nextInt();
}
public boolean isLeapYear(int year)
{
if (year % 4 != 0)
isLeapYear = false;
else if ((year % 4 == 0) && (year % 100 == 0))
isLeapYear = false;
else if ((year % 4 == 0) && (year % 100 == 0) && (year % 400 == 0))
isLeapYear = true;
else
isLeapYear = false;
System.out.println(isLeapYear);
System.out.println(boolean isLeapYear);
return isLeapYear;
}
}
Run Code Online (Sandbox Code Playgroud)
ncm*_*ist 10
有几个问题.
一个是风格; 总是大写班级名称.这是一种普遍观察到的Java约定.不这样做会让其他程序员感到困惑.
其次,线
System.out.println(boolean isLeapYear);
Run Code Online (Sandbox Code Playgroud)
是语法错误.删除它.
第三.
您永远不会从主程序中调用该函数.这就是为什么你永远不会看到对输入的任何回复.
Run Code Online (Sandbox Code Playgroud)System.out.println(isLeapYear);
应该工作得很好.
顺便说一下,在
Run Code Online (Sandbox Code Playgroud)else if ((year % 4 == 0) && (year % 100 == 0)) isLeapYear = false; else if ((year % 4 == 0) && (year % 100 == 0) && (year % 400 == 0)) isLeapYear = true;
year % 400永远不会达到这个部分,因为如果(year % 4 == 0) && (year % 100 == 0) && (year % 400 == 0)是真的,那么(year % 4 == 0) && (year % 100 == 0)一定要成功.
也许交换这两个条件或重构它们:
else if ((year % 4 == 0) && (year % 100 == 0))
isLeapYear = (year % 400 == 0);
Run Code Online (Sandbox Code Playgroud)
小智 7
您应该只删除布尔变量前面的“布尔值”。
像这样做:
boolean isLeapYear = true;
System.out.println(isLeapYear);
Run Code Online (Sandbox Code Playgroud)
或者
boolean isLeapYear = true;
System.out.println(isLeapYear?"yes":"no");
Run Code Online (Sandbox Code Playgroud)
另一件事是您似乎根本没有调用该方法!方法和变量都不是静态的,因此,您必须首先创建类的实例。或者您只是将两者都设为静态,而不是直接从您的主要方法调用您的方法。
因此,代码中有几个错误。也许你应该从一个更简单的例子开始,而不是重新编写它,直到它达到你想要的效果。
例子:
import java.util.Scanner;
public class booleanfun {
static boolean isLeapYear;
public static void main(String[] args)
{
System.out.println("Enter a year to determine if it is a leap year or not: ");
Scanner kboard = new Scanner(System.in);
int year = kboard.nextInt();
isLeapYear(year);
}
public static boolean isLeapYear(int year) {
if (year % 4 != 0)
isLeapYear = false;
else if ((year % 4 == 0) && (year % 100 == 0))
isLeapYear = false;
else if ((year % 4 == 0) && (year % 100 == 0) && (year % 400 == 0))
isLeapYear = true;
else
isLeapYear = false;
System.out.println(isLeapYear);
return isLeapYear;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83697 次 |
| 最近记录: |