为什么在java代码中出现无法访问的语句错误。需要帮助解决此错误吗

为什么在java代码中出现无法访问的语句错误。需要帮助解决此错误吗,java,Java,下面是注释行,其中我得到一个无法访问的错误: public class HotelRoom{ private int rNo; private int dRented; private String rType; private String occName; **type of accomodation is checked below** if(rType=="king"){ this.rType=rType;

下面是注释行,其中我得到一个无法访问的错误:

    public class HotelRoom{
        private int rNo;
        private int dRented;
        private String rType;
        private String occName;

**type of accomodation is checked below**
    if(rType=="king"){ this.rType=rType; }
    else if(rType=="queen"){ this.rType=rType;}
    else if(rType=="suite"){ this.rType=rType;}
    else{this.rType = "queen"; } }
**accessor** 
    public int getRoomNumber(){ return rNo; }
    public int getDaysRented(){ return dRented; }
**mutator**
    public String getRoomType(){ return rType; }
    public String getOccupantName(){return occName; }
**setting the value of occupant based on the conditions**
    public boolean setOccupant(String guestName, int days){
    if(this.occName!=null){ return false; }
    this.occName=guestName; this.dRented = days; return true; }
推进方法

public void advanceDay(){
        this.dRented = this.dRented - 1;
        if(this.dRented <= 0){ this.occName = null; this.dRented = 0;}}
错误行-“无法到达的错误”:

返回“HotelRoom”+rNo+:“+rType+”-“+out”; }


方法
toString
(出于可读性原因,我在这里报告的方法重新格式化):

最后一行永远无法到达,因为您从上一个
if
块返回,并且
else
块中也返回,因此没有机会到达最后一行

我想你喜欢以下行为:

public String toString() {
  String out = "";
  if (occName != null) {
    // Just set out variable
    out = "Rented"; 
  } else { 
    // Just set out variable
    out ="Free"; 
  }
  // Return a complete string using the previous out variable
  return "HotelRoom" + rNo +":" + rType + "-" + out;
}


提示:始终格式化代码,使其更易于阅读。易于阅读的代码也是易于研究以发现错误的代码。

您从
if
else
中的方法返回,无法访问后续语句。感谢您的回答,我对这一点非常陌生。如果你不介意的话,你能告诉我在哪里换车吗。因此,根据占用者的情况,我可以在main方法中获得输出。请参见下面的答案:)我有一种模糊的感觉,您在编辑器中的源代码与您在这里提出的问题不一样。如果我错了,并且您在这里的输入与您在编辑器中的输入相匹配,我建议您先买一本书,学习有效的java语法。此外,您正在比较
字符串
s与
==
不要这样做。非常感谢您的回答!!!遇到stackover错误-由于格式问题,它不允许我发布问题,所以我浪费了大量时间格式化每一行。很抱歉,如果代码不可读,我希望下次会做得更好。@JohnDoe格式化它:1-从IDE复制代码,2-将代码粘贴到stackoverflow,3-突出显示代码,4-单击按钮{}代码示例,它将保留IDE的格式。我也做了同样的事情,谷歌搜索了很多。但是这个错误仍然没有发生-->“请添加一些上下文来解释代码部分(或者检查您是否将所有问题都错误地格式化为代码)。”我无法提出新问题,因为我发布了不可读的代码。嗯,这对我来说是新的。我会学习回来的。但无论如何,非常感谢这些解决方案
public static void main (String[] args){
        HotelRoom r1 = new HotelRoom(007,"king");
        System.out.println(r1);
        }
        }
public String toString() {
  String out = "";
  if (occName != null) {
    out = "Rented"; 
    return out;  // Exit here
  } else { 
    out ="Free"; 
    return out;  // or exit here
  }
  // Never reachable
  return "HotelRoom" + rNo +":" + rType + "-" + out;
}
public String toString() {
  String out = "";
  if (occName != null) {
    // Just set out variable
    out = "Rented"; 
  } else { 
    // Just set out variable
    out ="Free"; 
  }
  // Return a complete string using the previous out variable
  return "HotelRoom" + rNo +":" + rType + "-" + out;
}