2017-09-11 7 views
-1

実際にあなたに挨拶をしていますので、私のコードで問題を知りたがっています。論理を教えてください。後でelse文も印刷できません。出力はまだ理由は、あなたがfunction()方法でカスタムクラスのインスタンスを作成していることである声明Javaスキャナの出力が奇妙な場合他のロジックエラー

コード

import java.util.*; 
public class Shivam 
{ 
    int age; 

    void function() 
    { 
     if (age<=10) 
     { 
      System.out.println("chutiye chota h tu"); 
     } 
     else 
     { 
      System.out.println("bada ho gya saale"); 
     } 
    } 

    public static void main(String[] args) { 
     Scanner sc= new Scanner(System.in); 
     int age=sc.nextInt(); 
     Shivam s1=new Shivam(); 
     s1.function(); 
     sc.close(); 
    } 
} 
+2

約お読みくださいのように同じメソッドを呼び出す[メンバー変数](https://docs.oracle.com/javase/tutorial/java/javaOO/variables.html)および[ローカル変数] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html) – petul

答えて

1

場合と同じである20ほど高い年齢を入力します。 int age;

Shivam s1=new Shivam(); 

は、プリミティブすなわち0のデフォルトとしてageの値を設定します。あなたはこの問題を解決するために、条件今

if (age<=10) //evaluates to true 

s1.function(); 

を呼び出すとき

今、あなたはfunction()の代わりに、クラスのフィールドであることなどをパラメータとしてageを受け入れるべき:

public static void function(int age) { 
    if (age<=10) { 
     ... 
    } else { 
     ... 
    } 
} 

s1.function(age); // from inside your main method 
+1

thanks mate –

+0

@ShivamAnandもしも助けがあれば、これを読んでいる人がこの記事を役に立つように答えることができます。 – nullpointer

+0

申し訳ありませんが新しい方法で新しいクエリを持って感謝を知らなかった: 希望uかもしれない –