簡單程序從DEITLE的書,讀5個整數,程序應該打印含有該號碼的相鄰星號.i.e(如果num = 5的輸出*****)線。 我已經在C++中測試過相同的解決方案,它工作正常。然而,這裏的緩衝區保持着奇怪的值(50?)。 我認爲問題在於使用緩衝區,但是我想知道爲什麼會發生這種情況?意外值
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication1;
import java.io.*;
import java.util.Date;
/**
* Program that reads five numbers and print starts equal to each number
*
* @author Hassan
*/
public class JavaApplication1
{
public static void main(String[] args)
{
int num ;
java.io.InputStreamReader ins= new InputStreamReader(System.in);
java.io.BufferedReader bfr = new BufferedReader (ins);
try
{
for(int i=0;i<5;i++)
{
System.out.println("Please Enter a number");
num = bfr.read();
System.out.print(num);
for(int j=0;j<num;j++)
{ System.out.print("* "); }
System.out.println("\n");
}
}
catch(Exception E)
{System.out.println(E.getMessage()); }
}
}
編輯:問題已經解決,但5個輸入的程序-is退房手續閱讀3只,即它的讀數輸入和忽略下一個
第一次讀到的BufferedReader的InputStreamReader和類。你可以認爲它打開了一個「輸入管道」,你可以在其中插入一些數據(在你的int類型的例子中)。如果數據讀取不正確,則會發生異常,我認爲在您的示例中更正確的是IOException類。 E是Exception類的一個實例,getMessage()是這個類的一個方法。但是,在現代方法中,您使用Scanner類來從鍵盤輸入不同類型的數據。 – user1929959