如果这是一个愚蠢的问题,我很抱歉,但我对编码很新,所以对于我的任务,我得到了这段代码:
package webservice;
import webservice.Weather;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
System.out.print ("Enter the zip code : ");
java.lang.String zipCode = scan.nextLine();
try{
webservice.Weather service = new webservice.Weather();
webservice.WeatherSoap port = service.getWeatherSoap();
webservice.WeatherReturn result = port.getCityWeatherByZIP(zipCode);
System.out.print(result.getCity()+ " ");
System.out.println (result.getState());
System.out.println("Zip code " + zipCode);
System.out.println ("Current Temperature is " + result.getTemperature());
}
catch (Exception ex){
System.out.println("Error");
}
}//end main
}//end class
代码运行完全正常,但我必须循环,直到我为邮政编码输入“0”。 我对编码很新,我试图回顾我之前的作品,试图结合一个循环,但我从未成功过。在用户输入“0”作为邮政编码之前,哪个循环最有效的代码循环?
答案 0 :(得分:1)
while循环怎么样?
String zipCode;
while(!"0".equals(zipCode = scan.nextLine())) {
//to do rest
}
示例代码:
import java.util.Scanner;
class Ideone
{
public static void main (String[] args)
{
Scanner sc = new Scanner(System.in);
String zipCode;
while(!"0".equals(zipCode = sc.nextLine())) {
System.out.printf("zip code: %s\n", zipCode);
}
System.out.printf("last zip code: %s\n", zipCode);
}
}
I / P:
123
456
789
0
O / P:
zip code: 123
zip code: 456
zip code: 789
last zip code: 0
答案 1 :(得分:1)
试试这个:
Scanner scan = new Scanner (System.in);
int zipCode;
while(scan.nextInt()!=0){
System.out.print ("Enter the zip code : ");
zipCode = scan.nextInt();
}
使用while
循环验证您的情况并使用.nextInt()
从扫描仪获取int 。
还有一个错字:
如果您使用:
import webservice.Weather;
您不必这样做:
webservice.Weather service = new webservice.Weather();
这很简单:
Weather service = new Weather();
请查看 Using Package Members 以获取更多信息。
答案 2 :(得分:0)
while循环可以解决问题。
这是因为while循环首先检查条件,然后如果发现条件为真则迭代。在您的情况下,我们需要检查用户是否输入了正确的值。如果他输入0,我们不需要继续进行。