簡體   English   中英

僅顯示最大數字,而我想打印兩個整數之間的所有數字

[英]only showing largest number while i want to print all numbers between two integers

int a = Integer.parseInt(T1.getText());
int b = Integer.parseInt(T2.getText());
int i;

if(a>b) {
    for(i=b;i<=a;i++) {
        jTextField3.setText(""+i);
    }
}

if(b>a) {
    for(i=a;i<=b;i++) {
        jTextField3.setText(""+i);
    }
}

它僅顯示“ a”和“ b”之間的最高數字。 雖然我想打印這兩個整數之間的所有數字。

因為您沒有追加到文本,所以每次都覆蓋它。

最好的選擇是首先構建所需的文本,然后將其一次性放置在UI文本字段中,這是最有效的,因為它不會觸發許多虛假的UI事件:

StringBuilder b = new StringBuilder();
for(i=b;i<=a;i++)
{
    b.append(i).append(' ');
}
jTextField3.setText(b.toString());

在這里,您每次都將textField的值設置為新的i值。 您應該首先連接所有i的值,然后將其設置為textField。

int a = Integer.parseInt(T1.getText());
int b = Integer.parseInt(T2.getText());
String s = "";

int i;
  if(a>b)
{
for(i=b;i<=a;i++)
{
 s = s + " " + i;
}

}
if(b>a)
{
for(i=a;i<=b;i++)
{
 s = s + " " + i;
}

}
jTextField3.setText(s);

setText()將覆蓋您之前設置的所有內容,因此在循環結束時,只有最后一個數字(最大)將顯示在文本字段中。

您必須將循環中的內容更改為:

String s = "";

for (...) {
    s += ""+i;
}

jTextField3.setText(s);

這將繼續將新值連接到字符串s的末尾,並在循環結束后最終設置文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM