javaif异常
1. java的奇怪现象!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是判断字符是否想同。
你可以到网上多搜点资料看看。
2. java中异常是用来处理程序出现错误的情况,那为什么不直接用if语句,把可能出现的错误放在if中呢
java中异常是用来处理程序出现错误的情况,不直接用if语句,把可能出现的错误放在if中的原因:因为有些错误是人们不能预料的,比如内存溢出等,所以还是需要try/catch一下。
(1)在Java程序运行过程中系统得到一个异常对象是,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。
(2)找到能够处理这种类型异常的方法后,运行时系统把当前异常交给这个方法处理;如果找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。
概述
异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。
各种编程语言在处理异常方面具有非常显着的不同点(错误检测与异常处理区别在于:错误检测是在正常的程序流中,处理不可预见问题的代码,例如一个调用操作未能成功结束)。某些编程语言有这样的函数:当输入存在非法数据时不能被安全地调用,或者返回值不能与异常进行有效的区别。