改正如下:
import java.io.*;
public class InputMonth {
public static String readline() {
String s="";
int inInt=0;
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
s = in.readLine();
inInt = Integer.parseInt(s);
//in.close;
//System.out.println(s);
}
catch (NumberFormatException ex) {
System.out.println("输入的数字格式不正确!");
}
catch (Exception e) {
System.out.println(e);
}
return s;
}
public static void main (String [] args) {
String yue="";
int x=0;
boolean done=false;
while(!done) {
System.out.print("请输入一个正确的月份: ");
yue = readline();
x=Integer.parseInt(yue);
if(x>12) {
System.out.print("您输入了一个错误的月份,请重新输入: ");
continue;
}else{
switch(x) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("第 " + x + "月份共有31 天! ");
done=true;
break;
default:
System.out.println("第 " + x + "月份共有30 天! ");
done=true;
}
}
}
}
}
import java.io.*;
public class InputMonth {
public static String readline() {
String s="";
int inInt=0;
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
s = in.readLine();
inInt = Integer.parseInt(s);
//in.close;
//System.out.println(s);
}
catch (NumberFormatException ex) {
System.out.println("输入的数字格式不正确!");
}
catch (Exception e) {
System.out.println(e);
}
return s;
}
public static void main (String [] args) {
String yue="";
int x=0;
boolean done=false;
while(!done) {
System.out.print("请输入一个正确的月份: ");
yue = readline();
x=Integer.parseInt(yue);
if(x>12) {
System.out.print("您输入了一个错误的月份,请重新输入: ");
continue;
}else{
switch(x) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("第 " + x + "月份共有31 天! ");
done=true;
break;
default:
System.out.println("第 " + x + "月份共有30 天! ");
done=true;
}
}
}
}
}
2。异常捕捉应该从特殊到全部
3。返回值未赋初值
4。case语句没有break
public class InputMonth {
public static int readline() {
String s="";
int inInt=0;
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
s = in.readLine();
inInt = Integer.parseInt(s);
//in.close;
//System.out.println(s);
} catch (IOException e) {
System.out.println(e);
}catch (NumberFormatException ex) {
System.out.println("输入的数字格式不正确!");
}
return inInt;
}
public static void main (String [] args) {
int x;
boolean done=false;
while(!done) {
System.out.print("请输入一个正确的月份: ");
x = readline();
if(x>12) {
System.out.print("您输入了一个错误的月份,请重新输入: ");
continue;
}else{
switch(x) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("第 " + x + "月份共?有31 天! ");
done=true;
break;
default:
System.out.println("第 " + x + "月份共有30 天! ");
done=true;
}
}
}
}
}
int inInt;
return inInt;
}这里类型明显不匹配。 readline()返回为String 型,你却返回的是int。
这里返回的确是String型,也不匹配。
x = readline();
int inInt;
return inInt;
}这里类型明显不匹配。 readline()返回为String 型,你却返回的是int。
import java.io.*;
public class InputMonth3 {
public static int readline() {
String s="";
int inInt=0;
boolean done=false;
outerLoop:
while(!done) {
int crc=0;
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
s = in.readLine();
inInt = Integer.parseInt(s);
//in.close;
//System.out.println(s);
} catch (IOException e) {
System.out.println(e);
crc=crc+1;
}catch (NumberFormatException ex) {
System.out.println("您输入的数字格式不正确!" + ex);
crc=crc+1;
}
if(crc != 0) {
System.out.println("请您重新输入一个正确的月份: ");
continue;
}else {
//return inInt;
break outerLoop;
}
}
return inInt;
}
public static void main (String [] args) {
int x;
boolean done=false;
while(!done) {
System.out.print("请输入一个正确的月份: ");
x = readline();
if(x>12) {
System.out.print("您输入了一个错误的月份,请重新输入: ");
continue;
}else{
switch(x) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("第 " + x + "月份共?有31 天! ");
done=true;
break;
default:
System.out.println("第 " + x + "月份共有30 天! ");
done=true;
}
}
}
}
}