当前位置:首页编程相关 → 正文

JAVA的奇怪现象!IF语句出错!总是只执行最后一句!

文章来源:网络收集  文章录入:天边  发布时间:2006-09-16  【放大字体 缩小字体】


程序要解决的问题是:摆25*25的花方阵。一层红花,一层黄花。问:需要多少盘红花?需要多少盘黄花?

编译可以通过。但运行时,无论是输入red、yellow还是非法数据,都是显示: 没有***的颜色的花(***是输入的字符串)

好奇怪啊!想砸电脑了!可惜又是刚买的电脑,舍不得!各位大侠帮帮忙啦


import javax.swing.JOptionPane;

public class flower
{
public static void main(String args[])
{
System.out.println("摆25*25的花方阵。一层红花,一层黄花。问:需要多少盘红花?需要多少盘黄花?");
String outColor=JOptionPane.showInputDialog("请确定:最外排是红花还是黄花?输入red或者yellow");
int row[]=new int[26];
int sum[]=new int[26];
row[0]=0;
int i;
for (i=1;i <=25;i )
row[i]=i;
for(i=1;i <=25;i )
sum[i]=row[i]*2 (row[i]-2)*2;
int total_1=0;
int total_2=0;
for(i=1;i <=25;i =2)
{
total_1 =sum[i];
total_2 =sum[i-1];
}

if(outColor=="red")
{ dngz.net版权所有
System.out.println("当红花在最外排时,红花一共有" total_1 "盘,而黄花一共有" total_2 "盘。");
}
else if(outColor=="yellow")
{
System.out.println("当黄花在最外排时,红花一共有" total_2 "盘,而黄花一共有" total_1 "盘。");
}
else if(outColor!="red" & &outColor!="yellow")
{
System.out.println("没有" outColor "的颜色的花");
}

}
}
另外:比如输入red,它最后显示的是:没有red的颜色的花

电脑像是将前面两句if里面的语句隐形了似的!

import javax.swing.JOptionPane;

public class flower
{
public static void main(String args[])
{
System.out.println("摆25*25的花方阵。一层红花,一层黄花。问:需要多少盘红花?需要多少盘黄花?");
String outColor=JOptionPane.showInputDialog("请确定:最外排是红花还是黄花?输入red或者yellow");
System.out.println(outColor);
int row[]=new int[26];
int sum[]=new int[26];
int i;
for (i=1;i <=25;i )
row[i]=i;
for(i=1;i <=25;i )

~


sum[i]=row[i]*2 (row[i]-2)*2;
int total_1=0;
int total_2=0;
for(i=1;i <=25;i =2)
{
total_1 =sum[i];
total_2 =sum[i-1];
}

if(outColor.equals("red"))
{
System.out.println("当红花在最外排时,红花一共有" total_1 "盘,而黄花一共有" total_2 "盘。");
}
else if(outColor.equals("yellow"))
{
System.out.println("当黄花在最外排时,红花一共有" total_2 "盘,而黄花一共有" total_1 "盘。");
}
else if(outColor!="red" & &outColor!="yellow")
{
System.out.println("没有" outColor "的颜色的花");
}

}
}


这样就可以了,你能看出来有什么不同吗?呵呵,只是把
if(outColor=="red")
改为if(outColor.equals("red"))


else if(outColor=="yellow")
改为else if(outColor.equals("yellow"))

这样就行了,你知道为什么吗??
主要是你不太理解==和.equals的区别,主要是==是判断是否引用的是一个对象,equals是判断字符是否想同。
你可以到网上多搜点资料看看。
多谢了初学,还是基础重要啊!

本文来自 www.dngz.net



看看输出什么
是不是空格造成的
打印本文  返回顶部  加入收藏  关闭窗口