【问题标题】:Now am getting incompatible error when using the if else statements现在使用 if else 语句时出现不兼容错误
【发布时间】:2012-11-05 19:09:12
【问题描述】:

尝试运行下面的程序,但在使用 switch 方法时出现错误

导入 java.util.Scanner;

/** * * @author 紧缩 公共类贷款{

public static void main(String[] args) {

扫描仪输入 = new Scanner(System.in);

    //variabled decleared
    double rate, payment,principal,interest,n;
    int length;
    String period;

    //input
    System.out.print("Enter the amount of money borrowed: $");
    principal = input.nextDouble();
    System.out.print("Enter the annual interest rate: ");
    interest = input.nextDouble();
    System.out.print("Enter the payment period :");
    period = input.next();
    System.out.print("Enter Loan Length:");
    length = input.nextInt();
    //process

    rate=interest/100;
    payment= principal*(rate*Math.pow((1+rate),n)/ Math.pow ((1+rate),n));

      if (period==annually) {
               n=1*length;
                System.out.prtintf(Your monthly sum is %f:,payment);{

 if (period==semiannuall) {
               n=2*length;
                System.out.prtintf(Your monthly sum is %f:,payment);{

 if (period== quarterly) {
               n=4*length;
                System.out.prtintf(Your quarterly sum is %f:,payment);{

 if (period==monthly) {
               n=12*length;
                System.out.prtintf(Your monthly sum is %f:,payment);{




}

}

【问题讨论】:

    标签: java switch-statement


    【解决方案1】:

    String 作为 case 值受 java 7 支持

    你需要像这样使用它

    if("annually".equals(period)){
    }
    

    【讨论】:

    • 刚接触编程,应该用什么方法?
    • 我没有意识到他们添加了字符串作为案例值。但如果是这样的话,也许更新你的 Java 会解决这个问题。在过去,我总是将它限制为 int 或 char 用于 case var。
    • @KernDennis 或 if / else if 如果您刚刚开始。使用布尔值period.equals("monthly") 等。
    • netbeans 是一个 ide ,它与 java 中的方法无关,使用 if ,elseif 正如@irrelephant 提到的那样
    • 使用 if 时,否则如果出现错误,提示类型不兼容
    【解决方案2】:

    每个 Jigar Joshi 链接你现在可以做字符串:

    在 switch 语句中使用字符串

    在 Java SE 7 及更高版本中,您可以在 switch 语句的表达式中使用 String 对象。以下代码示例 StringSwitchDemo 根据名为月份的字符串的值显示月份的编号:

    public class StringSwitchDemo {
    public static int getMonthNumber(String month) {
    
        int monthNumber = 0;
    
        if (month == null) {
            return monthNumber;
        }
    
        switch (month.toLowerCase()) {
            case "january":
                monthNumber = 1;
                break;
            case "february":
                monthNumber = 2;
                break;
            case "march":
                monthNumber = 3;
                break;
            case "april":
                monthNumber = 4;
                break;
            case "may":
                monthNumber = 5;
                break;
            case "june":
                monthNumber = 6;
                break;
            case "july":
                monthNumber = 7;
                break;
            case "august":
                monthNumber = 8;
                break;
            case "september":
                monthNumber = 9;
                break;
            case "october":
                monthNumber = 10;
                break;
            case "november":
                monthNumber = 11;
                break;
            case "december":
                monthNumber = 12;
                break;
            default: 
                monthNumber = 0;
                break;
        }
    
        return monthNumber;
    }
    
    public static void main(String[] args) {
    
        String month = "August";
    
        int returnedMonthNumber =
            StringSwitchDemo.getMonthNumber(month);
    
        if (returnedMonthNumber == 0) {
            System.out.println("Invalid month");
        } else {
            System.out.println(returnedMonthNumber);
        }
    }
    

    }

    【讨论】:

      猜你喜欢
      • 2018-03-13
      • 2013-06-18
      • 1970-01-01
      • 2020-06-27
      • 2017-08-23
      • 2020-11-15
      • 2015-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多