私はあなたが私に教えてくれる限り、いつでも学ぶ準備ができています。私はJavaを使いこなすだけで、私が学ぶ最も良い方法です。私のコードで改善できると思っていることがあれば、それについて聞いてみたいと思います。何が起こっているのか分かりません - エラーはありません(Javaの新機能)
私が自分自身で準備したプロジェクトの全体的な目標は、人々に関する情報を格納するJavaでプログラムを作成することです。その後、その情報をTomcatサーバーに転送します。実行中のSQLをセットアップします。次のように今、あなたは私の全体的な目標を(私はそれにはほど遠いです)理解していることを
は、私の問題は次のとおりです。
私はなど、エントリコマンドと名のために私に尋ねたコードの一部を取得することができます問題ない。しかし、私が "read"をタイプしてenterを押すと、else if文をスキップしてelseセクションにまっすぐ進みます。
編集:問題を解決するために投稿を更新しました。
ワーキングコード:
import javax.print.DocFlavor.READER;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int total = 0;
int years = 0;
int invested =0;
ArrayList<String> names = new ArrayList<String>(0);
ArrayList<String> address = new ArrayList<String>(0);
ArrayList<String> ids = new ArrayList<String>(0);
Scanner sReader = new Scanner(System.in);
while(reader.nextLine().toLowerCase().split(" ")[0] != "exit")
{
System.out.print("Enter Instruction: ");
String n = reader.nextLine();
String[] uin = n.toLowerCase().split(" ");
if(uin[0].equals("add"))
{
try {
System.out.println(add(Integer.parseInt(uin[1]),Integer.parseInt(uin[2])));
} catch (NumberFormatException e) {
System.out.println("Numbers Only");
System.out.print(e.getMessage());
} catch (Exception e){
System.out.println("ERROR");
}
}
if(uin[0].equals("sub") || uin[0].equals("subtract"))
{
try {
System.out.print(Integer.parseInt(uin[1])-Integer.parseInt(uin[2]));
} catch (NumberFormatException e){
System.out.println("Numbers Only");
System.out.print(e.getMessage());
} catch (Exception e){
System.out.println("ERROR");
}
}
if(uin[0].equals("string"))
{
String string = "this is a string.";
System.out.println(string.indexOf("cat"));
}
if(uin[0].equals("a"))
{
total+=Integer.parseInt(uin[1]);
invested+=Integer.parseInt(uin[1]);
}
if(uin[0].equals("aa"))
{
total+=10000;
invested+=10000;
}
if(uin[0].equals("bb"))
{
total-=55000;
invested-=55000;
}
if(uin[0].equals("aq"))
{
for(int i = 0;i < Integer.parseInt(uin[1]);i++){
total+=10000;
invested+=10000;
total*=1.06;
years+=1;
}
years-=1;
}
if(uin[0].equals("exit"))
{
break;
}
if(uin[0].equals("entry")){
for(int i=0;i==0;i+=0){
System.out.print("Entry Command: ");
String input = sReader.nextLine();
if(input.equals("exit")){
i = 1;
}else if(input.equals("read")){
for(int y=0;y<names.size();y++){
System.out.println("User #"+y);
System.out.println(names.get(y).toString());
System.out.println(address.get(y).toString());
System.out.println(ids.get(y).toString());
}
}else{
System.out.print("Name: ");
input = sReader.nextLine();
names.add(input);
System.out.print("Address: ");
input = sReader.nextLine();
address.add(input);
System.out.print("ID: ");
input = sReader.nextLine();
ids.add(input);
}
}
}
total*=1.06;
years+=1;
double earn = Math.floor(total) * 0.06;
System.out.println("Bank: " + total);
System.out.println("Invested: " + invested);
System.out.println("Yearly Earnings: " + earn);
System.out.println("Years: " + years);
}
}
public static int add(int n1, int n2){
int out;
try{
out = (n1+n2);
return(out);
}catch (Exception e){
System.out.print("ERROR");
return(0);
}
}
}
旧コード:
import javax.print.DocFlavor.READER;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int total = 0;
int years = 0;
int invested =0;
ArrayList<String> names = new ArrayList<String>(0);
ArrayList<String> address = new ArrayList<String>(0);
ArrayList<String> ids = new ArrayList<String>(0);
Scanner sReader = new Scanner(System.in);
while(reader.nextLine().toLowerCase().split(" ")[0] != "exit")
{
System.out.print("Enter Instruction: ");
String n = reader.nextLine();
String[] uin = n.toLowerCase().split(" ");
if(uin[0].equals("add"))
{
try {
System.out.println(add(Integer.parseInt(uin[1]),Integer.parseInt(uin[2])));
} catch (NumberFormatException e) {
System.out.println("Numbers Only");
System.out.print(e.getMessage());
} catch (Exception e){
System.out.println("ERROR");
}
}
if(uin[0].equals("sub") || uin[0].equals("subtract"))
{
try {
System.out.print(Integer.parseInt(uin[1])-Integer.parseInt(uin[2]));
} catch (NumberFormatException e){
System.out.println("Numbers Only");
System.out.print(e.getMessage());
} catch (Exception e){
System.out.println("ERROR");
}
}
if(uin[0].equals("string"))
{
String string = "this is a string.";
System.out.println(string.indexOf("cat"));
}
if(uin[0].equals("a"))
{
total+=Integer.parseInt(uin[1]);
invested+=Integer.parseInt(uin[1]);
}
if(uin[0].equals("aa"))
{
total+=10000;
invested+=10000;
}
if(uin[0].equals("bb"))
{
total-=55000;
invested-=55000;
}
if(uin[0].equals("aq"))
{
for(int i = 0;i < Integer.parseInt(uin[1]);i++){
total+=10000;
invested+=10000;
total*=1.06;
years+=1;
}
years-=1;
}
if(uin[0].equals("exit"))
{
break;
}
if(uin[0].equals("entry")){
for(int i=0;i==0;i+=0){
System.out.print("Entry Command: ");
sReader = new Scanner(System.in);
System.out.println(sReader.nextLine());
if(sReader.nextLine().equals("exit")){
i = 1;
}else if(sReader.nextLine().equals("read")){
System.out.println(names.size());
System.out.println("yup");
for(int y=0;y==names.size()-1;y++){
System.out.println(names);
System.out.println(names.get(y));
System.out.println(address.get(y));
System.out.println(ids.get(y));
}
}else{
System.out.print("Name: ");
sReader = new Scanner(System.in);
names.add(sReader.nextLine());
System.out.print("Address: ");
sReader = new Scanner(System.in);
address.add(sReader.nextLine());
System.out.print("ID: ");
sReader = new Scanner(System.in);
ids.add(sReader.nextLine());
}
}
}
total*=1.06;
years+=1;
double earn = Math.floor(total) * 0.06;
System.out.println("Bank: " + total);
System.out.println("Invested: " + invested);
System.out.println("Yearly Earnings: " + earn);
System.out.println("Years: " + years);
}
}
public static int add(int n1, int n2){
int out;
try{
out = (n1+n2);
return(out);
}catch (Exception e){
System.out.print("ERROR");
return(0);
}
}
}
あなたがテキストの新しい行にあなたが 'sReader.nextLine()'を呼び出すたびに読み続けます。変数に結果を格納し、その条件でその変数を使用します。 –
ようこそスタックオーバーフロー!デバッガの使い方を学ぶ必要があるようです。 [補完的なデバッグ手法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)にご協力ください。その後も問題が残っている場合は、もう少し詳しくお聞かせください。 –
あなたのforループは非常に奇妙に見えます。 'for(int y = 0; y == names.size() - 1; y ++){'おそらく入力されません。 –