2016-11-28 87 views
-3

我對任何類型的編程都很新,並且正在學習java。我有一個任務,但不斷收到錯誤,我不確定如何解決。希望有任何幫助,因爲這項任務比我嘗試的任務要複雜得多。 我遇到的主要問題是使用多種方法並使用返回。不斷收到「缺少return語句」錯誤

這是我的代碼到目前爲止,如果它對任何人有任何意義......任何幫助表示讚賞。

import java.util.Scanner; 

public class LPU { 
    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); 
     boolean gradedep; 

     do { 
      System.out.println("Please input your mark: "); 
      int mark = in.nextInt();   

      System.out.println("Please input number of days to display: "); 
      int days = in.nextInt(); 

     if (mark >= 0 && mark <= 100 && days >= 0 && days <= 20) { 
       gradedep = true; 

     } else { 
       System.out.println(""); 
       System.out.println(""); 
       System.out.println("Please re-enter as you have entered an invalid input. "); 
       System.out.println(""); 
       System.out.println(""); 
       gradedep = false; 
     } 
     } while (!gradedep); 
     } 

    public static int mingrade(int mark, int days) { 
     int newmark; 

     if (mark < 40 && mark >=0) { 
      newmark = mark; 

     } else { 
      newmark = mark - 5; 

     return newmark; 
     } 
    } 
} 

LPU.java:40:錯誤:缺少return語句 } ^ 1錯誤

我知道這個錯誤是在代碼中的一些廢話做的,但我不能確定如何糾正它。

+3

將'return'移到'else'括號外。 –

+0

看起來你想'return newmark'成爲'else'分支**的外部**。 –

+1

未來的技巧,http://stackoverflow.com/help/how-to-ask。 – Tacolibre

回答

2

試試這個:

// delete newmark 
if (mark < 40 && mark >=0) { 

    return mark; 
} else { 

    return (mark -5); 
} 
3

移動return語句else子句之外,像這樣:

public static int mingrade(int mark, int days) { 
     int newmark; 

     if (mark < 40 && mark >=0) { 
      newmark = mark; 
     } else { 
      newmark = mark - 5; 
     } 

     return newmark; 
    } 

你有它在您的文章,如果該商標是小於40的方式並且大於或等於0,newmark被設置,但從未返回。

也沒有必要實例化newmark變量。這將是一個更清潔的方法:

public static int mingrade(int mark, int days) { 
     if (mark < 40 && mark >=0) { 
      return mark; 
     } else { 
      return mark - 5; 
     } 
    }