簡體   English   中英

我的代碼不會解析

[英]My code won't parse

我不知道出了什么問題。 我有一個類項目,它使用三種方法來獲取用戶輸入並告訴哪種原始類型是最小的適用於輸入,但是由於某種原因,當我運行代碼時,它會將每個輸入都變為 0。這是我的代碼(主要在不同的班級):代碼已修復,無需進一步回答這只是我對語法的新手理解。

package stuff;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class driver 
{



public static void run() throws IOException
{
System.out.println("Please input a number");
num1 = prompt();
analyze();
}
static long num1;

public static long prompt() throws IOException
 {
 BufferedReader input = new BufferedReader (new InputStreamReader(System.in));
    String Selection1 = input.readLine();
    long num1 = Long.parseLong(Selection1);
    return num1;
 }

public static void analyze() throws IOException
{
System.out.println(num1);
if (num1>=Byte.MIN_VALUE && num1<=Byte.MAX_VALUE) 
{
    System.out.println("you should use a byte");
} 
else if (num1>=Short.MIN_VALUE && num1<=Short.MAX_VALUE) 
{
    System.out.println("you should use a short");
}
else if (num1>=Integer.MIN_VALUE && num1<=Integer.MAX_VALUE)
{
    System.out.println("you should use an integer");
}
else 
{
    System.out.println("you should use a long");
}

}
}

你應該利用prompt方法返回的值,你知道。

而不是僅僅調用prompt(); ,您應該將返回的值分配給num1

num1 = prompt();

該程序神奇地工作!

“等等!在prompt方法中,我已經將解析的 long 分配給了num1 !看!” 你喊道。

long num1 = Long.parseLong(Selection1);

實際上,您沒有將解析的值分配給您在類級別聲明的num1變量。 您正在創建一個名為num1的新變量!

暫無
暫無

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

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