大家帮帮忙帮我看一下运行没达到效果
运行后我行我素购物管理系统>生日问候
请输入今天的日期(月/日<用两位数表示>):
06/26
对不起!
代码
1
public class Data{
int[] custNo = new int[100]; //会员号
String[] custBirth =new String[100]; //会员生日
int[] custScore = new int[100]; //会员积分
public void initial(){
//客户1
custNo[0] = 1623;
custBirth[0] = "06/26";
custScore[0] = 5000;
//客户2
custNo[1] = 1545;
custBirth[1] = "04/08";
custScore[1] = 2200;
}
}
2
import java.util.*;
public class GifeManagement{
Data data = new Data();
public void setData(){
data.initial();
}
public void sendBirthCust(){
String riqi;
int rutu = 0;
Scanner input = new Scanner(System.in);
System.out.println("我行我素购物管理系统>生日问候\n\n");
System.out.println("请输入今天的日期(月/日<用两位数表示>):");
riqi = input.next(); //提示输入日期
boolean
iscon = false;
//循环判断输入日期是否与会员日期相同
for(int i = 0;i < 100; i++ ){
if (riqi == data.custBirth[i]){
rutu = i;
iscon = true;
break;
}
}
if (iscon){
//如果结果相同提示中奖
System.out.println("今天过生日的会员"+data.custNo[rutu]+data.custScore[rutu]+"恭喜!赠送MP3一个");
}else{
//结果不同提示对不起
System.out.println("对不起!");
}
}
}
3
public class ceshi{
public static void main (String[] args){
GifeManagement ce = new GifeManagement();
ce.sendBirthCust();
}
}
----------------解决方案--------------------------------------------------------
if (riqi == data.custBirth[i]){
很多人都犯这个错误,我在论坛上回答这个问题已经不下于5次了。
比较字符串是否相等不能用"=="号,要用"equals"
if (riqi.equals(data.custBirth[i]) ) {
----------------解决方案--------------------------------------------------------
riqi.equalsIgnoreCase(data.custBirth[i])
这个也可以哦
public class ceshi{
public static void main (String[] args){
GifeManagement ce = new GifeManagement();
ce.setData();
ce.sendBirthCust();
}
}
还有主函数加上ce.setData();
----------------解决方案--------------------------------------------------------