gpt4 book ai didi

java - 验证输入。我究竟做错了什么?

转载 作者:行者123 更新时间:2023-12-01 09:52:22 24 4
gpt4 key购买 nike

我是 Java 新手,一周前才刚刚开始。

我正在尝试编写一个程序,要求用户输入“a”、“b”和“c”的选择以及小时数。

我设法完成了所有这些,但问题是:

  1. 当用户输入 a.b 和 c 以外的其他字母时,程序继续运行。

  2. 如果用户输入的小时值超过“24”,则程序仅执行“if”语句的第一部分。

下面是我的代码。

import java.util.*;
import javax.swing.*;


public class PetSelectionHw
{
public static void main(String[] args) throws Exception
{

String user_input="";
String NumberOfHours="";

int hours= 0;


System.out.println("a) House");
System.out.println("b) Apartment");
System.out.println("c) Dormitory");

Scanner User_Selection = new Scanner (System.in);
user_input = User_Selection.next();
char aChar = user_input.charAt(0);

if(aChar == 'a'){
//System.out.println("Selection is " + user_input);
} else if(aChar == 'b'){
//System.out.println("Selection is " + user_input);
} else if(aChar == 'c'){
//System.out.println("Selection is " + user_input);
} else if(aChar == 'd' || aChar == 'z'){
JOptionPane.showMessageDialog(null, "Wrong Input");
}


NumberOfHours = JOptionPane.showInputDialog(null,"Enter number of hours spent at home");
hours = Integer.parseInt(NumberOfHours);

if(hours > 24 && hours < 0){
JOptionPane.showMessageDialog(null, "Incorrect input of hours");
} else if (aChar == 'a' && hours >= 18){
JOptionPane.showMessageDialog(null, "Pot bellied pig");
} else if (aChar == 'a' && hours >= 10 && hours <= 17){
JOptionPane.showMessageDialog(null, "Dog");
} else if (aChar == 'a' && hours < 10){
JOptionPane.showMessageDialog(null, "Snake");
} else if (aChar == 'b' && hours >= 10){
JOptionPane.showMessageDialog(null, "Cat");
} else if (aChar =='b' && hours < 10){
JOptionPane.showMessageDialog(null, "Hamster");
}else if (aChar =='c' && hours >= 6){
JOptionPane.showMessageDialog(null, "Fish");
}else if (aChar =='c' && hours < 6){
JOptionPane.showMessageDialog(null, "Ant Farm");
}






}




}

最佳答案

您想使用else:

if(aChar == 'a') {
System.out.println("Selection is " + user_input);
} else if(aChar == 'b') {
System.out.println("Selection is " + user_input);
} else if(aChar == 'c') {
System.out.println("Selection is " + user_input);
} else { // anything that is not 'a', 'b' or 'c'
OptionPane.showMessageDialog(null, "Wrong Input");
}

您甚至可能想考虑使用 switch使用 default 情况,或更简单(imo):

if(aChar == 'a' || aChar == 'b' || aChar == 'c') { System.out.println("Selection is " + user_input); }
else { OptionPane.showMessageDialog(null, "Wrong Input"); }

对于第二个问题,您应该在这里使用 || (OR) 而不是 && (AND):

if(hours > 24 || hours < 0)
JOptionPane.showMessageDialog(null, "Incorrect input of hours");

关于java - 验证输入。我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37524929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com