问题描述
我编写的程序为什么不能进行二次循环??importjava.util.*;publicclasskaoshi{publicstaticvoidmain(String[]args){System.out.println("**********天气状况中英文对照表**********");System.out.println("干燥潮湿淡热下雨");System.out.println("DryMoistureHotRainynn");Scannerinput=newScanner(System.in);do{System.out.print("请输入天气状况的第一个英文字母:");Stringweather=input.next();if(weather.equals("D")){System.out.println("干燥n");}elseif(weather.equals("M")){System.out.println("潮湿n");}elseif(weather.equals("H")){System.out.println("淡热n");}elseif(weather.equals("R")){System.out.println("下雨n");}System.out.println("您想继续吗?(Y/N)");Stringanswer=input.next();}while(answer.equals("Y"));System.out.println("程序结束!");}}
解决方案
解决方案二:
你的answer变量有问题要在do.while循环外申明,你while判断中的answer是不能被访问的
解决方案三:
你把answer定义到do的外面去,像这样。publicstaticvoidmain(String[]args){System.out.println("**********天气状况中英文对照表**********");System.out.println("干燥潮湿淡热下雨");System.out.println("DryMoistureHotRainynn");Scannerinput=newScanner(System.in);Stringanswer="";do{System.out.print("请输入天气状况的第一个英文字母:");Stringweather=input.next();if(weather.equals("D")){System.out.println("干燥n");}elseif(weather.equals("M")){System.out.println("潮湿n");}elseif(weather.equals("H")){System.out.println("淡热n");}elseif(weather.equals("R")){System.out.println("下雨n");}System.out.println("您想继续吗?(Y/N)");answer=input.next();}while(answer.equals("Y"));System.out.println("程序结束!");}
解决方案四:
楼上两位说的对是你的变量作用域的问题