Java 循环将无法正确执行
我正在为类编写一个程序,循环似乎没有正确执行。它总是将Java 循环将无法正确执行,java,for-loop,Java,For Loop,我正在为类编写一个程序,循环似乎没有正确执行。它总是将i的值返回为0。代码的其余部分似乎与广告一样工作,i只是索引值没有增加 public class Day { String strDay; private int d = 0; private String[] Days = {"SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"}; String day;
i
的值返回为0。代码的其余部分似乎与广告一样工作,i
只是索引值没有增加
public class Day {
String strDay;
private int d = 0;
private String[] Days = {"SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"};
String day;
public Day() {
return;
}
public Day(String strDay) {// this is my issue. I think I am going about this constructor all wrong
for (int i = 0; i < Days.length; i++) {
if (strDay.equalsIgnoreCase(Days[i]))
d = i;
return;
}
}
public int getDay() {
return d;
}
public void nexDay() {
int next;
if (d < 6) {
next = (this.d) + 1;
System.out.println("Next Day is :" + Days[next]);
} else {
next = 0;
System.out.println("Next Day is :" + Days[next]);
}
}
public void prevDay() {
int prev = 0;
if ((d > 0) && (d < 6)) {
prev = (this.d) - 1;
System.out.println("previous day is " + Days[prev]);
} else
System.out.println("previous day id " + Days[6]);
}
public int calcDay(int num) {
int newDay;
this.d = d + num;
newDay = this.d % 7;
System.out.println("calc day is" + Days[d]);
return newDay;
}
public void print() {
System.out.println("day is " + Days[d]);
}
public static void main(String[] args) {
String day;
Day Callmethod = new Day();
Scanner console = new Scanner(System.in);
System.out.println("enter a day of the week");
day = console.nextLine();
Callmethod.print();
Callmethod.nexDay();
Callmethod.prevDay();
Callmethod.getDay();
}
}
公共课日{
字符串标准日;
私有int d=0;
私人字符串[]天={“星期日”、“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”};
弦日;
公众日{
返回;
}
公众日(String-strDay){//这是我的问题。我想我在这个问题上完全错了
对于(int i=0;i0)和&(d<6)){
prev=(这个d)-1;
System.out.println(“前一天是”+前几天];
}否则
System.out.println(“前一天id”+天[6]);
}
公共整数计算日(整数){
国际新日;
d=d+num;
newDay=this.d%7;
系统输出打印项次(“计算日为”+天[d]);
新年归来;
}
公开作废印刷品(){
System.out.println(“天为”+天[d]);
}
公共静态void main(字符串[]args){
弦日;
Day Callmethod=新的一天();
扫描仪控制台=新扫描仪(System.in);
System.out.println(“输入一周中的某一天”);
day=console.nextLine();
Callmethod.print();
Callmethod.nexDay();
Callmethod.prevDay();
Callmethod.getDay();
}
}
嗯,这个
Day Callmethod = new Day();
正在调用空构造函数。不是带循环的构造函数(它采用字符串
)。此外,Java变量以小写字母开头(Callmethod
看起来像一个class
)。我想你在找类似的东西
Day day = new Day("SUNDAY");
此外,您的if
需要大括号,或者返回将被调用,而不执行任何操作(除非它在第一个条目上匹配),如
for(inti=0;i那么,这个
Day Callmethod = new Day();
正在调用您的空构造函数。不是带循环的构造函数(它采用字符串
)。此外,Java变量以小写字母开头(Callmethod
看起来像类
)。我想您正在寻找类似
Day day = new Day("SUNDAY");
此外,您的if
需要大括号,或者返回将被调用,而不执行任何操作(除非它在第一个条目上匹配),如
for(int i=0;i尝试更改此选项:
public Day(String strDay)/// this is my issue. I think I am going about this constructor all wrong
{
for(int i=0;i<Days.length;i++){
if (strDay.equalsIgnoreCase(Days[i]))
d = i;
return;
}
}
publicsday(stringstrday)///这是我的问题。我想我对这个构造函数的理解是错误的
{
对于(int i=0;i尝试更改此项:
public Day(String strDay)/// this is my issue. I think I am going about this constructor all wrong
{
for(int i=0;i<Days.length;i++){
if (strDay.equalsIgnoreCase(Days[i]))
d = i;
return;
}
}
publicsday(stringstrday)///这是我的问题。我想我对这个构造函数的理解是错误的
{
对于(int i=0;i公共日(字符串标准日){
对于(int i=0;i
如果我理解得很清楚,这就行了。如果没有,请向我解释for循环的目标是什么。然后将return
语句放在下一个括号外。公共日(String strDay){
对于(int i=0;i
如果我理解得很清楚,这就行了。如果没有,请告诉我for循环的目标是什么。然后将return
语句放在下一个括号的外面。String
使用==
进行相等性测试不是一个好主意。另外,return
不是If
主体的一部分。谢谢您的info、 我想我在轻松驾驶后发现了问题。我的scanner变量是day,但我正在尝试将strDay与数组进行比较。如何将它们进行相同的比较?是否可能strDay为null,可以编译为0,从而在第一次出现时使其为真?String
使用=
进行相等性测试>这不是一个好主意。另外,return
不是if
正文的一部分。感谢您提供的信息。我想我在轻松驾驶后发现了我的问题。我的scanner变量是day,但我正在尝试将strDay与数组进行比较。如何将它们进行相同的比较?是否可能strDay为null,这可能是在编译因此,在第一次出现时是否为0?