2017-11-14 8 views
0

私は
ユーザに一連のステートメントを表示する必要があるプログラムを作成していました。その後、メイン画面に戻るかどうか尋ねます。そのコントロールので、メインのある部分からJavaのメインの別の部分にコントロールを転送するには?

import java.io.*; 
    public class main 
    { 
     public static void main() throws IOException 
     { 
      InputStreamReader isr=new InputStreamReader(System.in); 
      BufferedReader br=new BufferedReader(isr); 
      System.out.println("START"); 
      int ch=Integer.parseInt(br.readLine()); 
      switch(ch) 
      { 
       case 1:System.out.println("HI"); 
         break; 
         /*I want a way to transfer the control from the case 
         such that it is transferred to 
         the print statement START.*/ 

      } 
     } 
    } 
+1

do-whileループ内のmainメソッドのコード全体をラップします。 –

+0

@Thilo、まれにしか死んでいない、ちょっと珍しい。例えば、以下を参照してください。[control flow constructs](https://blog.jooq.org/tag/control-flow/) –

答えて

-1

これを実行する方法は多数あります。 1つのループでそれを持っていると、彼は新しい入力をしたいかどうかをユーザーに依頼し続けます。

import java.io.*; 
    public class main 
    { 
    public static void main() throws IOException 
    { 
    InputStreamReader isr=new InputStreamReader(System.in); 
    BufferedReader br=new BufferedReader(isr); 
    int ch; 
    int input; 
    while(true) 
    { 
    System.out.println("Do you want to return to main screen. Press 1 for Yes, 0 for No"); 
    input = Integer.parseInt(br.readLine()); 
    if(input == 1) 
    { 
    ch=Integer.parseInt(br.readLine()); 
     switch(ch) 
     { 
      case 1:System.out.println("HI"); 
        break; 
     } 
    } 
    else 
    { 
    break; 
    } 
    } 

上記の私の答えは正しいですが、これはユーザーにもっと使い易いかもしれません。 これが役立つことを願っています!

+0

このコードは実行されません、1は論理値ではない整数なのでcondidtionが失敗し、変数 "input"にその値をすでに持っているときになぜchを使用しているのか分かりません –

+0

bro while(1 )は、Javaの無限ループを意味します。 Plzz check。そして第二に私は彼の主な機能が変わらないようにchを使いました。そのように彼は2つの変数を持つために1つ以上の場合を使用しているかもしれません。 – Sid

+0

上記の理由でコードがコンパイルされません。これは他の言語でも動作しますが、Javaでは1はブール値ではなく、whileステートメントの条件はブール値に評価する必要があります。 –

1

あなたはループを使用する必要があります。
しかし、私はケースを使用していたので、it.Iは私がit.Hereを行うことができます方法を知りたいの前に、私はコードに戻って制御を移すことができませんでしたコードですch == 1の場合は、最初はSystem.out.println()になります。

import java.io.*; 
public class main 
{ 
    public static void main() throws IOException 
    { 
     InputStreamReader isr=new InputStreamReader(System.in); 
     BufferedReader br=new BufferedReader(isr); 
     int ch; 
     do { 
      System.out.println("START"); 
      int ch=Integer.parseInt(br.readLine()); 
      switch(ch) 
      { 
       case 1:System.out.println("HI"); 
         break; 
      } 
     } while (ch == 1); 
    } 
} 
+0

動作しません。ローカル変数chを2回定義しました。 –

0

これは動作し、コンパイルされます(メインメソッドのシグネチャを変更できるように変更しました)。

import java.io.*; 

public class Test { 

    public static void main(String[] args) throws IOException{ 

     InputStreamReader isr=new InputStreamReader(System.in); 
     BufferedReader br=new BufferedReader(isr); 
     int ch; 
     do { 
      System.out.println("START"); 
      ch=Integer.parseInt(br.readLine()); 
      switch(ch) 
      { 
       case 1:System.out.println("HI"); 
       break; 
      } 
     } while (ch == 1); 
     System.out.println("1 was not entered, exiting"); 
    } 
} 
関連する問題