2017-12-11 9 views
0

を継続する文字列の入力をしたいです。しかし、私がこのプログラムを実行したとき、文字列入力を受け取るオプションはありません。私の欠点は分かりません。は、私は、キーボードからの文字列入力をしたい条件分岐

ここに私のコードは次のとおりです。

import java.util.Scanner; 
public class Input_Program { 
public static void main(String args[]) 
{ 
    Scanner in = new Scanner(System.in); 
    int a,b; 
    System.out.println("Enter the first number :"); 
    a=in.nextInt(); 
    System.out.println("Enter the second number :"); 
    b=in.nextInt(); 


    System.out.println("Value of first number:"+a); 
    System.out.println("Value of second number:"+b); 

    System.out.println("Do you want Add two numbers"); 
    System.out.println("To Continue: Type Yes"); 

    String S=in.nextLine(); 

    if("Yes".equals(S)||"yes".equals(S)) 
    { 
    int sum=a+b; 
    System.out.println("Summation :"+sum); 
    } 

} 
} 

私はこのコードからの入力をしたいです。しかし、それは動作していません。

String S=in.nextLine(); 

    if("Yes".equals(S)||"yes".equals(S)) 
    { 
    int sum=a+b; 
    System.out.println("Summation :"+sum); 
    } 

このコードの結果である:正常

run: 
Enter the first number : 
2 
Enter the second number : 
3 
Value of second number:3 
Do you want the Summation of two numbers 
To Continue: Type Yes 

BUILD(合計時間:9秒)https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.htmlに従って

+2

nextLine()の代わりにnext()を試してください。スキャナのドキュメントによれば、nextLine()は "このスキャナを現在の行より進め、スキップされた入力を返します。" – Meepo

+0

同じ結果が返されます。 –

+0

私はそれを実行し、それは私のために働いた – Meepo

答えて

2

1)nextLine()「は、現在過ぎこのスキャナーを進めあなたが探している振る舞いではない、飛び越された入力を返します。

2)あなたはJavaを使い慣れていないようですが、命名規則があります。変数名を大文字で始まらないでください。

3)インデントを修正し、yで始まるものを取り込むために入力を一般化しました。将来、if文やループなどのコード行がわかりやすいので、この方法でコードを書くことをお勧めします。

import java.util.Scanner; 
public class Input_Program { 
    public static void main(String args[]) { 
     Scanner in = new Scanner(System.in); 
     System.out.println("Enter the first number :"); 
     int a = in.nextInt(); 
     System.out.println("Enter the second number :"); 
     int b = in.nextInt(); 


     System.out.println("Value of first number:" + a); 
     System.out.println("Value of second number:" + b); 

     System.out.println("Do you want Add two numbers"); 
     System.out.println("To Continue: Type Yes"); 

     String s = in.next(); 

     if(s.toLowerCase().contains("y")){ 
      int sum=a+b; 
      System.out.println("Summation :"+sum); 
     } 

    } 
} 
+0

#2の命名規則は、すべてのプログラミング言語で同じです。 – Developer

+0

あなたに感謝します。当然の –

+0

あなたは、この行 を説明してくださいます! s.toLowerCase()は文字列sを取り、それをすべて小文字に変換します。 .contains( "y")を呼び出すと、文字列の中に文字yがあればtrueを返します。しかし、より具体的にするには、.startsWith( 'y')を試してください。文字列が文字yで始まる場合はtrueを返します。 –

関連する問題