不知道是什么';正在发生-无错误(Java新功能)
只要你肯教我,我随时准备学习。我只是在玩弄Java,因为它是我学习的最好方式。如果你觉得我的代码有什么可以改进的地方,我很乐意听听 我为自己准备的这个项目的总体目标是用Java创建一个程序来存储关于人的信息。然后将该信息传输到Tomcat服务器,我将设置运行SQL的服务器 现在,您已经了解了我的总体目标(我离目标还很远),我的问题如下: 我可以找到要求输入命令和名称等的代码部分。没问题。然而,当我输入“read”并按enter键时,它似乎跳过了我设置的else-if语句,直接进入else部分 编辑:我更新了帖子,展示了解决问题的方法 工作代码:不知道是什么';正在发生-无错误(Java新功能),java,if-statement,Java,If Statement,只要你肯教我,我随时准备学习。我只是在玩弄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);
}
}
}
import javax.print.DocFlavor.READER;
导入java.util.ArrayList;
导入java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
扫描仪阅读器=新扫描仪(System.in);
int-total=0;
整数年=0;
int=0;
ArrayList名称=新的ArrayList(0);
ArrayList地址=新的ArrayList(0);
ArrayList ID=新的ArrayList(0);
Scanner sReader=新扫描仪(System.in);
while(reader.nextLine().toLowerCase().split(“”[0]!=“退出”)
{
系统输出打印(“输入指令:”);
字符串n=reader.nextLine();
字符串[]uin=n.toLowerCase().split(“”);
如果(uin[0]。等于(“添加”))
{
试一试{
System.out.println(add(Integer.parseInt(uin[1]),Integer.parseInt(uin[2]));
}捕获(数字格式){
System.out.println(“仅限数字”);
System.out.print(如getMessage());
}捕获(例外e){
System.out.println(“错误”);
}
}
如果(uin[0]。等于(“sub”)| uin[0]。等于(“减法”))
{
试一试{
System.out.print(Integer.parseInt(uin[1])-Integer.parseInt(uin[2]);
}捕获(数字格式){
System.out.println(“仅限数字”);
System.out.print(如getMessage());
}捕获(例外e){
System.out.println(“错误”);
}
}
if(uin[0]。等于(“字符串”))
{
String String=“这是一个字符串。”;
System.out.println(string.indexOf(“cat”));
}
如果(uin[0]。等于(“a”))
{
total+=Integer.parseInt(uin[1]);
invested+=Integer.parseInt(uin[1]);
}
if(uin[0]。等于(“aa”))
{
总数+=10000;
投资额+=10000;
}
if(uin[0]。等于(“bb”))
{
总数=55000;
投资额-=55000;
}
if(uin[0]。等于(“aq”))
{
对于(int i=0;i 对于(int y=0;y它会出错,因为您正在执行System.out.println(sReader.nextLine())
-这会自动获取最后一个输入(因此在您的示例中“exit”
),但当您尝试执行if(sReader.nextLine().equals(“exit”)
时,它会再次查找下一行
要修复此问题,可以将输入存储在变量中:
String input = sReader.nextLine();
System.out.println(input);
if (input.equals("exit")) {
// etc
}
每次调用sReader.nextLine()时,您都会阅读一行新的文本
。将结果存储在变量中,并在您的条件下使用该变量。欢迎使用堆栈溢出!看起来您需要学习使用调试器。请自行解决一些问题。如果以后仍有问题,请随时返回并提供更多详细信息。for循环看起来非常奇怪…for(int y=0;y==names.size()-1、 y++{
可能不会被输入谢谢!这无疑将我推向了正确的方向并解决了问题。