Discussion:
[問題] 控制輸入錯誤 麻煩指教
(时间太久无法回复)
寂心孤月
2006-10-20 08:11:01 UTC
Permalink
想請教高手在輸入數值時

1.輸入了不能轉成整數形態的字串

2.不輸入任何字串(包含空白鍵) 直接按enter

以上兩種方法都會讓程式會整個error

麻煩給小弟一點提示怎樣去控制它 讓他重新輸入

以下這支程式是部份程式碼

import java.io.*;

class Math
{
public static void main(String [] args) throws IOException
{
int a,b,c;
int iMin,iMax;
int iAverage,iSum;

System.out.println("請輸入任意三個數值,數值不可為空白");

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));


a = Integer.parseInt(in.readLine());
b = Integer.parseInt(in.readLine());
c = Integer.parseInt(in.readLine());
(略)

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.174.157.196
z***@ptt.cc
2006-10-20 08:35:28 UTC
Permalink
※ 引述《luvwher (寂心孤月)》之銘言:
: 想請教高手在輸入數值時
: 1.輸入了不能轉成整數形態的字串
: 2.不輸入任何字串(包含空白鍵) 直接按enter
: 以上兩種方法都會讓程式會整個error
: 麻煩給小弟一點提示怎樣去控制它 讓他重新輸入
: 以下這支程式是部份程式碼
: import java.io.*;
: class Math
: {
: public static void main(String [] args) throws IOException
: {
: int a,b,c;
: int iMin,iMax;
: int iAverage,iSum;
: System.out.println("請輸入任意三個數值,數值不可為空白");
: BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
: a = Integer.parseInt(in.readLine());
: b = Integer.parseInt(in.readLine());
: c = Integer.parseInt(in.readLine());
: (略)

自從升級為1.5版之後,我都習慣使用Scanner,可以避免不小心按到enter的狀況。
至於不能轉成整數型態的字串,我會先在轉型前先判斷一下:
in.matches("[0-9]+") ,這似乎也是1.5版的功能?


--
The race is not to the swift or the battle to the strong, nor does food come
to wise or wealth to the brilliant or favor to the learned:
but time and chance happen to them all.

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.174.223.134
※ 編輯: zu 來自: 218.174.223.134 (10/21 00:35)
继续阅读narkive:
Loading...