原代码是这样的
public class HelloWorld {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("合格了吗?(y/n)");
String answer = input.next();
while(!"y".equals(answer)){
System.out.println("上午阅读教材!");
System.out.println("下午上机编程!\n");
System.out.println("合格了吗?(y\n)");
anwers = input.next();
}
System.out.println("完成学习任务!");
}
}
这里也是漏洞百出
现在来说一说这串代码的组成
这是一个问答形式的代码
它的最终目的是问你有没有完成学习任务,知道你回答y,也就是yes的意思,不然它就会一直循环,一直找到它找到它想要的答案为止
至于answer = input.next(); 就是为了避免死循环
拓展补充
Scanner的用法
Scanner是一个类,nextDouble()是Scanner的成员函数,System.in作为参数传递
然后呢,有new在内存中例化一个Scanner出来
使用Scanner,需在开头添加一个java.util.Scanner类,这是一个用于扫描和输入文本的程序
任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分
Java通过系统类System实现标准输入/输出的功能,定义了3个流变量:in,out,和err.这3个流在Java中都定义为静态变量,可以直接通过System类进行调用。