JAVA报错无法访问的语句

import java.util.Scanner;

import java.util.Random;

public class GuessNumber {

public static void main (String args[]) {

  Scanner reader = new Scanner(System.in);

  Random random = new Random();

  System.out.println("给你一个1至100之间的整数,请猜测这个数");

  int realNumber = random.nextInt(100)+1; //random.nextInt(100)是[0,100)中的随机整数

  int yourGuess = 0;

  System.out.print("输入您的猜测:"); 

  yourGuess = reader.nextInt();

  while(true) //循环条件

  {

     if(realNumber>yourGuess)   //猜大了的条件代码

     {

         System.out.print("猜大了,再输入你的猜测:");

         yourGuess = reader.nextInt();

     }

     else if(realNumber<yourGuess) //猜小了的条件代码

     {

         System.out.print("猜小了,再输入你的猜测:");

         yourGuess = reader.nextInt();

     }

  }

     System.out.print("猜对了");

}

}

img

最后一个else if把 System.out.print("猜对了");移进去


else if(realNumber<yourGuess) {
                System.out.print("猜小了,再输入你的猜测:");
                yourGuess = reader.nextInt();
            }
            else {
                System.out.print("猜对了");
                break;
            }
        }
    }
}
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/746897
  • 这篇博客也不错, 你可以看下聊聊Java的异常机制问题
  • 除此之外, 这篇博客: JAVA集合中的 对象的克隆与复制 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 对象赋值 Date now2=now;
    • 两个变量now2和now中存放是同一个对象的地址,不管操作那个变量两个都受影响,因为now2和now是同一个对象。
      如果希望两个变量相互不影响,则只能通过克隆实现。Java中的克隆可以分为深克隆和浅克隆。

    如果需要支持克隆操作要求必须实现Cloneable接口,Object类中提供了clone()方法,这个方法是一个本地方法,是由虚拟机提供实现的

    protected native Object clone() throws CloneNotSupportedException;
    

    Cloneable接口属于标志性接口,没有具体的实现,具体实现实际上是Object类中提供的
    1、自定义类上要求实现Cloneable接口
    2、自定义类中要求实现clone方法,这个方法只需要调用父类的clone方法即可,一般不需要额外的处理。

    浅克隆

    public class Colone1 {
    	public static void main(String[] args) throws Exception {
    		stu s1 = new stu();
    		s1.setId(12L);
    		s1.setBirth(new Date());
    		stu s2 = (stu)s1.clone();
    		s2.getBirth().setYear(200);
    		System.out.println(s1);
    		System.out.println(s2);
    	}
    }
    
    class stu implements Cloneable{
    	private Long id;
    	private Date birth;
    	
    	public Object clone() throws CloneNotSupportedException{
    		return super.clone();
    	}
    
    	public Long getId() {
    		return id;
    	}
    
    	public void setId(Long id) {
    		this.id = id;
    	}
    
    	public Date getBirth() {
    		return birth;
    	}
    
    	public void setBirth(Date birth) {
    		this.birth = birth;
    	}
    
    	@Override
    	public String toString() {
    		return "stu [id=" + id + ", birth=" + birth + "]";
    	}
    }
    

    深克隆(一般采用对象流实现。自定义类要求实现Serializable接口)

    public class clone2 {
    	public static void main(String[] args) {
    		student11 ss1 = new student11();
    		ss1.setId(20L);
    		ss1.setBirth(new Date());
    		student11 ss2 = (student11)ss1.deepClone();
    		ss1.getBirth().setYear(330);
    		System.out.println(ss1);
    		System.out.println(ss2);
    	}
    }
    
    class student11 implements Serializable{
    	private Long id;
    	private Date birth;
    	
    	public student11 deepClone() {
    		student11  res= null;
    			try {
    				ByteArrayOutputStream baos  =new ByteArrayOutputStream();
    				ObjectOutputStream oos = new ObjectOutputStream(baos);
    				oos.writeObject(this);
    				ObjectInputStream  ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
    				res = (student11)ois.readObject();
    				oos.close();
    				ois.close();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		return res;
    		
    	}
    	
    	public Long getId() {
    		return id;
    	}
    	public void setId(Long id) {
    		this.id = id;
    	}
    	public Date getBirth() {
    		return birth;
    	}
    	public void setBirth(Date birth) {
    		this.birth = birth;
    	}
    	@Override
    	public String toString() {
    		return "student11 [id=" + id + ", birth=" + birth + "]";
    	}
    }