讀取值的問題 |
缺席
|
bike
一般會員 發表:5 回覆:13 積分:3 註冊:2002-12-13 發送簡訊給我 |
抱歉!因為剛學程式...
所以問這種笨問題! 我想請問一下
為何我輸入值為1
而讀取出來的值卻為49呢?
因為這樣a值就錯亂了
以至於我後面的判斷就無法作用... public class choice
{
public static void main(String arg[])
{
try{
int a= 0 ;
System.out.println("請選擇要使用的付款方式:");
System.out.println("1 劃撥 2 信用卡 3 現金 4 轉帳" );
a = (int) System.in.read();
System.out.println(a);
if (a == 1)
{
System.out.println("你選擇的付款方式為:劃撥");
}
else if (a == 2)
{
System.out.println("你選擇的付款方式為:信用卡" );
}
else if (a == 3)
{
System.out.println("你選擇的付款方式為:現金");
}
else
{
System.out.println("你選擇的付款方式為:轉帳");
}
}
catch(Exception e)
{
System.out.println("I/O error coours!");
}
}
}
|
nkss
一般會員 發表:1 回覆:20 積分:16 註冊:2002-12-17 發送簡訊給我 |
因為你讀到的是 1 的 ASCII值
也就是說你讀到的是 1 這個字元,然後轉成整數,當然是49囉 你這樣子寫~
a = (int) System.in.read(); 有一個取巧的方式,就是把讀取輸入的程式碼寫成 a= System.in.read() - 48 這樣就適合於當接收輸入的變數其型態是int
引言: 抱歉!因為剛學程式... 所以問這種笨問題! 我想請問一下 為何我輸入值為1 而讀取出來的值卻為49呢? 因為這樣a值就錯亂了 以至於我後面的判斷就無法作用... public class choice { public static void main(String arg[]) { try{ int a= 0 ; System.out.println("請選擇要使用的付款方式:"); System.out.println("1 劃撥 2 信用卡 3 現金 4 轉帳" ); a = (int) System.in.read(); System.out.println(a); if (a == 1) { System.out.println("你選擇的付款方式為:劃撥"); } else if (a == 2) { System.out.println("你選擇的付款方式為:信用卡" ); } else if (a == 3) { System.out.println("你選擇的付款方式為:現金"); } else { System.out.println("你選擇的付款方式為:轉帳"); } } catch(Exception e) { System.out.println("I/O error coours!"); } } }
------
一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。 |
bike
一般會員 發表:5 回覆:13 積分:3 註冊:2002-12-13 發送簡訊給我 |
這樣寫的話...太奇怪了吧!
難道java沒有可以直接讀取數值的功能嗎?
或是說,有沒有可以把ASCII轉成int的指令之類的?
引言: 因為你讀到的是 1 的 ASCII值 也就是說你讀到的是 1 這個字元,然後轉成整數,當然是49囉 你這樣子寫~ a = (int) System.in.read(); 有一個取巧的方式,就是把讀取輸入的程式碼寫成 a= System.in.read() - 48 這樣就適合於當接收輸入的變數其型態是int引言: 抱歉!因為剛學程式... 所以問這種笨問題! 我想請問一下 為何我輸入值為1 而讀取出來的值卻為49呢? 因為這樣a值就錯亂了 以至於我後面的判斷就無法作用... public class choice { public static void main(String arg[]) { try{ int a= 0 ; System.out.println("請選擇要使用的付款方式:"); System.out.println("1 劃撥 2 信用卡 3 現金 4 轉帳" ); a = (int) System.in.read(); System.out.println(a); if (a == 1) { System.out.println("你選擇的付款方式為:劃撥"); } else if (a == 2) { System.out.println("你選擇的付款方式為:信用卡" ); } else if (a == 3) { System.out.println("你選擇的付款方式為:現金"); } else { System.out.println("你選擇的付款方式為:轉帳"); } } catch(Exception e) { System.out.println("I/O error coours!"); } } } |
nkss
一般會員 發表:1 回覆:20 積分:16 註冊:2002-12-17 發送簡訊給我 |
基本上........讀進來直接變成該數值才奇怪...
(電腦又不是人.. and 我第一次看到有人這麼說)
那我輸入a , 又要變成什麼呢?~
你可以去查查 1的ASCII值是什麼
從System.in讀進來的東西本來就是ASCII值吧
只不過依照你接受的變數型而呈現出來的東西而有所差別 以上只是個人的小小的看法
它沒提供你可以自己寫吧
方式還是和我說的一樣... @_@ 對了,ASCII本來就是數值了吧,轉成int還是一樣 @_@ 閃人去... 對了 想起了一件事,好像修課時老師特愛出一題就是在
瑩幕上輸入一段文字,然後叫你去算a,b..z出現幾次
這如果宣告一個a..z的ascii值的陣列,就超好算了
不用再
if input=='a' then
xxx 以上只是一個新手的言論,請小姐別太在意囉
引言: 這樣寫的話...太奇怪了吧! 難道java沒有可以直接讀取數值的功能嗎? 或是說,有沒有可以把ASCII轉成int的指令之類的?引言: 因為你讀到的是 1 的 ASCII值 也就是說你讀到的是 1 這個字元,然後轉成整數,當然是49囉 你這樣子寫~ a = (int) System.in.read(); 有一個取巧的方式,就是把讀取輸入的程式碼寫成 a= System.in.read() - 48 這樣就適合於當接收輸入的變數其型態是int引言: 抱歉!因為剛學程式... 所以問這種笨問題! 我想請問一下 為何我輸入值為1 而讀取出來的值卻為49呢? 因為這樣a值就錯亂了 以至於我後面的判斷就無法作用... public class choice { public static void main(String arg[]) { try{ int a= 0 ; System.out.println("請選擇要使用的付款方式:"); System.out.println("1 劃撥 2 信用卡 3 現金 4 轉帳" ); a = (int) System.in.read(); System.out.println(a); if (a == 1) { System.out.println("你選擇的付款方式為:劃撥"); } else if (a == 2) { System.out.println("你選擇的付款方式為:信用卡" ); } else if (a == 3) { System.out.println("你選擇的付款方式為:現金"); } else { System.out.println("你選擇的付款方式為:轉帳"); } } catch(Exception e) { System.out.println("I/O error coours!"); } } }
------
一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。 |
bike
一般會員 發表:5 回覆:13 積分:3 註冊:2002-12-13 發送簡訊給我 |
像c語言的話,只要打%d,讀的就會是數值啦...
JAVA沒有這種功能嗎?
我會這樣問....真的很奇怪嗎? 算了....
那我用BufferedReader讀好了!
引言: 基本上........讀進來直接變成該數值才奇怪... (電腦又不是人.. and 我第一次看到有人這麼說) 那我輸入a , 又要變成什麼呢?~ 你可以去查查 1的ASCII值是什麼 從System.in讀進來的東西本來就是ASCII值吧 只不過依照你接受的變數型而呈現出來的東西而有所差別 以上只是個人的小小的看法 它沒提供你可以自己寫吧 方式還是和我說的一樣... @_@ 對了,ASCII本來就是數值了吧,轉成int還是一樣 @_@ 閃人去... 對了 想起了一件事,好像修課時老師特愛出一題就是在 瑩幕上輸入一段文字,然後叫你去算a,b..z出現幾次 這如果宣告一個a..z的ascii值的陣列,就超好算了 不用再 if input=='a' then xxx 以上只是一個新手的言論,請小姐別太在意囉引言: 這樣寫的話...太奇怪了吧! 難道java沒有可以直接讀取數值的功能嗎? 或是說,有沒有可以把ASCII轉成int的指令之類的?引言: 因為你讀到的是 1 的 ASCII值 也就是說你讀到的是 1 這個字元,然後轉成整數,當然是49囉 你這樣子寫~ a = (int) System.in.read(); 有一個取巧的方式,就是把讀取輸入的程式碼寫成 a= System.in.read() - 48 這樣就適合於當接收輸入的變數其型態是int引言: 抱歉!因為剛學程式... 所以問這種笨問題! 我想請問一下 為何我輸入值為1 而讀取出來的值卻為49呢? 因為這樣a值就錯亂了 以至於我後面的判斷就無法作用... public class choice { public static void main(String arg[]) { try{ int a= 0 ; System.out.println("請選擇要使用的付款方式:"); System.out.println("1 劃撥 2 信用卡 3 現金 4 轉帳" ); a = (int) System.in.read(); System.out.println(a); if (a == 1) { System.out.println("你選擇的付款方式為:劃撥"); } else if (a == 2) { System.out.println("你選擇的付款方式為:信用卡" ); } else if (a == 3) { System.out.println("你選擇的付款方式為:現金"); } else { System.out.println("你選擇的付款方式為:轉帳"); } } catch(Exception e) { System.out.println("I/O error coours!"); } } } |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
nkss
一般會員 發表:1 回覆:20 積分:16 註冊:2002-12-17 發送簡訊給我 |
我當然知道C可以丫...
但是Java和C的語言特性又不同
好像教Java的教授說過若問他 Java有沒有像C的scanf(),printf()那樣的東西~~答案是..沒有~~~至於原因嘛....請參考Java IO作者的話吧.. 對了,你可以trace 一下GNU版的libc,他有 open source
在你說的格式化輸入輸出,你先trace printf.c,知道他參考到
vfprintf.c,然後你可以在裏面發現這一行
# define ISDIGIT(Ch) ((unsigned int) ((Ch) - '0') < 10)
就是他怎麼判斷你輸入的"東西"是不是數字的地方
然後你再把 '0' 轉成int型態後印出來
如果用java應該是
int a=(int)'0';
然後你會知道 a=48
然後你看我第一篇回的東西
然後你還是覺得我的做法很奇怪的話
那我就無言了.. [quote]
像c語言的話,只要打%d,讀的就會是數值啦...
JAVA沒有這種功能嗎?
我會這樣問....真的很奇怪嗎? 算了....
那我用BufferedReader讀好了! [quote] 一個人生命中能達到最了不起的成就,
無非就是發現自己,
並且勇敢地成為自己。
------
一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。 |
nkss
一般會員 發表:1 回覆:20 積分:16 註冊:2002-12-17 發送簡訊給我 |
|
nkss
一般會員 發表:1 回覆:20 積分:16 註冊:2002-12-17 發送簡訊給我 |
等等~~我記得
Integer.paseInt(p1,p2)
p1好像是要String型態吧
但 System.in.read()是整數型態耶~~~
so..
引言: :p 呵呵~~~這樣子還是轉換型態丫 不過"易讀多了"引言:一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。引言: a=(int)System.in.read();bike 你好: 試試看這樣可不可以 >>< face="Verdana, Arial, Helvetica"> 一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。
------
一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。 |
bike
一般會員 發表:5 回覆:13 積分:3 註冊:2002-12-13 發送簡訊給我 |
|
nkss
一般會員 發表:1 回覆:20 積分:16 註冊:2002-12-17 發送簡訊給我 |
這不是解決的方法
這是本來的方法
只是你原本的接收是用整數型態~~
你這樣寫,System.in.read()收到你打1會傳回 49
而49這個ascii code對應到字元 1 反正,總之~~~~~
在標準輸入就是會傳回ASCII 值
引言: RaynorPao 你好... 你的方法,不知怎麼,也是不行耶^^" 謝謝你們了! 我已經想到解決的方法了... 直接宣告成 char a; a = (char) System.in.read(); 直接讀取char 這樣就不會有問題了!引言:一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。引言: a=(int)System.in.read();bike 你好: 試試看這樣可不可以 >>< face="Verdana, Arial, Helvetica">
------
一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。 |
nkss
一般會員 發表:1 回覆:20 積分:16 註冊:2002-12-17 發送簡訊給我 |
感覺自己被耍了.. 我要1分丫~~~~ 掛蛋中
回答問題是有藝術的 :p
引言: 這不是解決的方法 這是本來的方法 只是你原本的接收是用整數型態~~ 你這樣寫,System.in.read()收到你打1會傳回 49 而49這個ascii code對應到字元 1 反正,總之~~~~~ 在標準輸入就是會傳回ASCII 值引言: RaynorPao 你好... 你的方法,不知怎麼,也是不行耶^^" 謝謝你們了! 我已經想到解決的方法了... 直接宣告成 char a; a = (char) System.in.read(); 直接讀取char 這樣就不會有問題了!< >< >< >< > 一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。引言:一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。引言: a=(int)System.in.read();bike 你好: 試試看這樣可不可以 >>< face="Verdana, Arial, Helvetica">
------
一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。 |
bike
一般會員 發表:5 回覆:13 積分:3 註冊:2002-12-13 發送簡訊給我 |
對不起啦~
只是你的回答不是我想要的嘛~
我想要答案...
看起來漂亮的答案....
你之前的回答,我也都有想過啊...
只是覺得這樣寫,很投機取巧...
這不是不行....
以前為了要交作業...我也常幹這種事情^^"
現在純粹自己想把JAVA從頭寫看看...
比較沒有時間的壓力...
所以就......
原諒我啦~
我沒有耍你.....
引言: 感覺自己被耍了.. 我要1分丫~~~~ 掛蛋中 回答問題是有藝術的 :p引言: 這不是解決的方法 這是本來的方法 只是你原本的接收是用整數型態~~ 你這樣寫,System.in.read()收到你打1會傳回 49 而49這個ascii code對應到字元 1 反正,總之~~~~~ 在標準輸入就是會傳回ASCII 值引言: RaynorPao 你好... 你的方法,不知怎麼,也是不行耶^^" 謝謝你們了! 我已經想到解決的方法了... 直接宣告成 char a; a = (char) System.in.read(); 直接讀取char 這樣就不會有問題了!< >< >< >< > 一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。 >>< face="Verdana, Arial, Helvetica">引言:一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。引言: a=(int)System.in.read();bike 你好: 試試看這樣可不可以 >>< face="Verdana, Arial, Helvetica"> |
nkss
一般會員 發表:1 回覆:20 積分:16 註冊:2002-12-17 發送簡訊給我 |
恩恩
我以為你的問題是怎麼把System.in.read()傳回值是整數1
因為你接收的變數型態是int
所以才會這樣子回答 不過我再看一次還是覺得你的問題是這樣耶
可能我學的是法語吧... ><
[quote]
對不起啦~
只是你的回答不是我想要的嘛~
我想要答案...
看起來漂亮的答案....
你之前的回答,我也都有想過啊...
只是覺得這樣寫,很投機取巧...
這不是不行....
以前為了要交作業...我也常幹這種事情^^"
現在純粹自己想把JAVA從頭寫看看...
比較沒有時間的壓力...
所以就......
原諒我啦~
我沒有耍你..... [quote] 一個人生命中能達到最了不起的成就,
無非就是發現自己,
並且勇敢地成為自己。
------
一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。 |
bike
一般會員 發表:5 回覆:13 積分:3 註冊:2002-12-13 發送簡訊給我 |
|
nkss
一般會員 發表:1 回覆:20 積分:16 註冊:2002-12-17 發送簡訊給我 |
對了,可以請妳用妳這種"漂亮"的寫法寫一下
計算在瑩幕中輸入的文字中的字母出現次數嗎
換妳教我了:p
例如
我輸入
I am a man, you are a woman. 然後你輸出
a出現6次
以此類推 拜託了....
引言: 對不起啦~ 只是你的回答不是我想要的嘛~ 我想要答案... 看起來漂亮的答案.... 你之前的回答,我也都有想過啊... 只是覺得這樣寫,很投機取巧... 這不是不行.... 以前為了要交作業...我也常幹這種事情^^" 現在純粹自己想把JAVA從頭寫看看... 比較沒有時間的壓力... 所以就...... 原諒我啦~ 我沒有耍你.....一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。
------
一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。 |
bike
一般會員 發表:5 回覆:13 積分:3 註冊:2002-12-13 發送簡訊給我 |
|
nkss
一般會員 發表:1 回覆:20 積分:16 註冊:2002-12-17 發送簡訊給我 |
對丫 我滿計較"漂亮的",因為妳說我的程式碼不漂亮~
但我覺得你的方法一點也不漂亮丫~~~~~~~~
所以請妳寫寫看比較一下那個比較漂亮!!!!
引言: 幹麻要刁難我啊.... 我才剛剛開始學JAVA而已耶..... 你明明就會那題.... 前面post的文章你不是把你的做法寫出來了嗎? 不要欺負我啦~ 你不過是少賺一分而已.... 好愛計較喔~一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。
------
一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。 |
bike
一般會員 發表:5 回覆:13 積分:3 註冊:2002-12-13 發送簡訊給我 |
是是是....
你的程式是全世界最漂亮的、結構最好的程式...
這樣可以了吧! 每個人寫程式的風格不同嘛...
哪有人硬性規定一定要怎麼寫的! 這是討論java的地方耶...
又不是跟你吵架的地方... 我就只能寫出這樣的程式嘛..
不要破壞我寫java的熱忱啦~ 到此為止啦!
可以吧?
引言: 對丫 我滿計較"漂亮的",因為妳說我的程式碼不漂亮~ 但我覺得你的方法一點也不漂亮丫~~~~~~~~ 所以請妳寫寫看比較一下那個比較漂亮!!!!引言: 幹麻要刁難我啊.... 我才剛剛開始學JAVA而已耶..... 你明明就會那題.... 前面post的文章你不是把你的做法寫出來了嗎? 不要欺負我啦~ 你不過是少賺一分而已.... 好愛計較喔~一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。 |
nkss
一般會員 發表:1 回覆:20 積分:16 註冊:2002-12-17 發送簡訊給我 |
不行..
哈哈...開玩笑滴~~~~~ 看妳這樣子說,也不要說我程式不好看嘛
PS 那妳向我道歉好了,我會原諒妳的
引言: 是是是.... 你的程式是全世界最漂亮的、結構最好的程式... 這樣可以了吧! 每個人寫程式的風格不同嘛... 哪有人硬性規定一定要怎麼寫的! 這是討論java的地方耶... 又不是跟你吵架的地方... 我就只能寫出這樣的程式嘛.. 不要破壞我寫java的熱忱啦~ 到此為止啦! 可以吧?一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。引言: 對丫 我滿計較"漂亮的",因為妳說我的程式碼不漂亮~ 但我覺得你的方法一點也不漂亮丫~~~~~~~~ 所以請妳寫寫看比較一下那個比較漂亮!!!!引言: 幹麻要刁難我啊.... 我才剛剛開始學JAVA而已耶..... 你明明就會那題.... 前面post的文章你不是把你的做法寫出來了嗎? 不要欺負我啦~ 你不過是少賺一分而已.... 好愛計較喔~一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。
------
一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。 |
bike
一般會員 發表:5 回覆:13 積分:3 註冊:2002-12-13 發送簡訊給我 |
我哪時說過你的程式不好看啦?
我沒說啦><
我只是想要用我的寫法,這樣而已啊... 我說過很多次對不起啦...
那..再說最後一次...對不起!
說話要算話喔^^
引言: 不行.. 哈哈...開玩笑滴~~~~~ 看妳這樣子說,也不要說我程式不好看嘛 PS 那妳向我道歉好了,我會原諒妳的引言: 是是是.... 你的程式是全世界最漂亮的、結構最好的程式... 這樣可以了吧! 每個人寫程式的風格不同嘛... 哪有人硬性規定一定要怎麼寫的! 這是討論java的地方耶... 又不是跟你吵架的地方... 我就只能寫出這樣的程式嘛.. 不要破壞我寫java的熱忱啦~ 到此為止啦! 可以吧?一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。引言: 對丫 我滿計較"漂亮的",因為妳說我的程式碼不漂亮~ 但我覺得你的方法一點也不漂亮丫~~~~~~~~ 所以請妳寫寫看比較一下那個比較漂亮!!!!引言: 幹麻要刁難我啊.... 我才剛剛開始學JAVA而已耶..... 你明明就會那題.... 前面post的文章你不是把你的做法寫出來了嗎? 不要欺負我啦~ 你不過是少賺一分而已.... 好愛計較喔~一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。 |
nkss
一般會員 發表:1 回覆:20 積分:16 註冊:2002-12-17 發送簡訊給我 |
引述你的第三篇文章 ---- 這樣寫的話...太奇怪了吧!
難道java沒有可以直接讀取數值的功能嗎?
^^^^^^^^
或是說,有沒有可以把ASCII轉成int的指令之類的?
--------- 呵呵~~好吧~~~~雖然我很小氣,但還是原諒妳了吧 ~~~
引言: 我哪時說過你的程式不好看啦? 我沒說啦>< 我只是想要用我的寫法,這樣而已啊... 我說過很多次對不起啦... 那..再說最後一次...對不起! 說話要算話喔^^一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。引言: 不行.. 哈哈...開玩笑滴~~~~~ 看妳這樣子說,也不要說我程式不好看嘛 PS 那妳向我道歉好了,我會原諒妳的引言: 是是是.... 你的程式是全世界最漂亮的、結構最好的程式... 這樣可以了吧! 每個人寫程式的風格不同嘛... 哪有人硬性規定一定要怎麼寫的! 這是討論java的地方耶... 又不是跟你吵架的地方... 我就只能寫出這樣的程式嘛.. 不要破壞我寫java的熱忱啦~ 到此為止啦! 可以吧?一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。引言: 對丫 我滿計較"漂亮的",因為妳說我的程式碼不漂亮~ 但我覺得你的方法一點也不漂亮丫~~~~~~~~ 所以請妳寫寫看比較一下那個比較漂亮!!!!引言: 幹麻要刁難我啊.... 我才剛剛開始學JAVA而已耶..... 你明明就會那題.... 前面post的文章你不是把你的做法寫出來了嗎? 不要欺負我啦~ 你不過是少賺一分而已.... 好愛計較喔~一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。
------
一個人生命中能達到最了不起的成就, 無非就是發現自己, 並且勇敢地成為自己。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |