我遇到问题,当我编译程序时没有错误,但是当我运行程序时没有执行任何操作。已经安装了JDK。其他程序运行良好。我的问题是什么?因为嵌套循环??
import java.io.*;
import java.io.PrintStream.*;
public class Latihan3 {
public static void main (String args []){
int data1=0;
int data2=0;
char temp1;
char temp2;
boolean done=false;
String simpan1;
String simpan2;
String konversi;
String jenis="";
String kata1="";
String kata2="";
FileInputStream fis1 =null;
FileInputStream fis2 =null;
FileOutputStream fos =null;
FileOutputStream fos2 =null;
DataOutputStream dos =null;
DataOutputStream dos2 =null;
PrintStream ps = null;
PrintStream ps2 = null;
try {
fis1 = new FileInputStream ("D://hasil2.txt");
fis2 = new FileInputStream ("D://latihan.txt");
fos = new FileOutputStream ("D://latihan2.txt");
fos2 = new FileOutputStream ("D://katabaru.txt");
dos = new DataOutputStream (fos);
dos2 = new DataOutputStream (fos2);
ps = new PrintStream (dos);
ps2 = new PrintStream (dos2);
} catch (IOException e){
System.out.println ("Eksepsi :"+e.getMessage());
}
try{
do {
data1=fis1.read();
temp1=(char)data1;
data2=fis2.read();
temp2=(char)data2;
while (temp1 != ' ' ){
simpan1 = String.valueOf(temp1);
kata1 = kata1.concat (simpan1);
data1=fis1.read();
temp1=(char)data1;
}
data1=fis1.read();
temp1=(char)data1;
jenis = String.valueOf(temp1);
data1=fis1.read();
temp1=(char)data1;
while (temp2 != ' ' ){
simpan2 = String.valueOf(temp2);
kata2 = kata2.concat (simpan2);
data2=fis2.read();
temp2=(char)data2;
}
if (kata1.equals (kata2)){
ps.print (kata1);
ps.print (' ');
ps.print (jenis);
ps.print ('/');
kata1="";
kata2="";
}else {
ps.print (kata2);
ps2.print (kata2);
ps2.print (' ');
ps2.print (jenis);
ps2.print ('/');
ps.print (' ');
ps.print ('?');
ps.print ('/');
kata1="";
kata2="";
}
} while (data2 != -1);
System.out.println ("data telah dimasukan");
} catch (IOException e){
System.out.println ("Eksepsi :"+e.getMessage());
}
}
}
答案 0 :(得分:0)
如果您的程序甚至没有打印“data telah dimasukan”,那么还有另一个错误。 Maxybe你忘了再次编译?
答案 1 :(得分:0)
程序不能执行任何操作只是“因为嵌套循环”。看起来您的代码逻辑或输入数据存在问题。目前很难跟踪问题,但是你可以帮助指定这个程序应该做什么,输入文件可以包含什么,你期望输出什么。
您可以使用IDE的调试器来检查程序中实际发生的情况。此外,您可以添加一些调试输出以获取字符串的中间值。
功能很长,至少有一个代码重复。如果你稍微重构一下(extract methods,将fis1,fos2和temp1中的变量重命名为一些有意义的名称),就会容易找到问题。