2017-02-04 10 views
-4

Я хочу напечатать «точку» в методе «printMethod». Так как «Имя игрока Майкл был 2000, а позиция игрока 1« как я могу это сделать? Есть ли правильный способ сделать это легко. Я могу сделать это, создав новый метод, но он так нацарапан.Я хочу напечатать входное значение в методе

 public class Test{ 
     public static void main(String[] args){ 
     int returnPosition = calculatePosition(2000); 
     printmethod("Michael" , returnPosition); 

     returnPosition = calculatePosition(900); 
     printmethod("Mark" , returnPosition); 

     returnPosition = calculatePosition(800); 
     printmethod("Halk" , returnPosition); 

     returnPosition = calculatePosition(700); 
     printmethod("Albion" , returnPosition); 

     returnPosition = calculatePosition(600); 
     printmethod("Cristine" , returnPosition); 

     returnPosition = calculatePosition(500); 
     printmethod("Emma" , returnPosition); 

     returnPosition = calculatePosition(400); 
     printmethod("Prince" , returnPosition); 

     returnPosition = calculatePosition(300); 
     printmethod("Jason" , returnPosition); 

     returnPosition = calculatePosition(200); 
     printmethod("Tim" , returnPosition); 

     returnPosition = calculatePosition(100); 
     printmethod("Bob" , returnPosition); 

     returnPosition = calculatePosition(50); 
     printmethod("Jackson" , returnPosition); 
    } 
    public static void printMethod(String playerName, int position){ 
     System.out.println("Player name is "+playerName+ " Point was " +point+ " and player position " +position); 
    } 
    public static int calculatePosition(int position){ 
     if (position > 1000){ 
      return 1; 
     }else if (position > 500 && position < 1000){ 
      return 2; 
     }else if (position > 100 && position < 400){ 
      return 3; 
     }else{ 
      return 4; 
     } 
    } 
} 
+0

вы можете передать точку в 'printmethod()' после изменения его прототип –

+0

я не understand..I видеть расчеты позиции, но где и как вы вычислить «точки»? – smoggers

+0

пункт еще не использовался. Точка означает мои входные данные (2000,900,800 и т. Д.). Я хочу использовать точку в методе «printMethod» для вывода. @smoggers –

ответ

0

меня мое решение вопроса после долгих размышлений и обзора вашего кода. Благодарю вас, все.

import java.util.Scanner; 
    public class Practise { 
    public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    System.out.println("Please enter player name: "); 
    String playerName = input.nextLine(); 
    System.out.println("Please enter player score: "); 
    int score = input.nextInt(); 
    int finalScore = calculateSection(score); 
    displayM(playerName , finalScore , score); 
} 

public static void displayM(String playerName,int finalScore, int score) { 
    System.out.println("Player name is " + playerName + " score was " + score+ " position is "+finalScore); 
} 

public static byte calculateSection(int score) { 
    if (score >= 1000) { 
     return 1; 
    } else if (score >= 500 && score < 1000) { 
     return 2; 
    } else if (score >= 400 && score < 500) { 
     return 3; 
    } else { 
     return 4; 
    } 

} 
0

Вы можете передать другой атрибут в методе, как это:

public static void printMethod(String playerName, int position, Integer point){ 
    System.out.println("Player name is " + playerName + " Point was " + point + " and player position " + position); 
} 

Примечание

не называют свой класс public class main { изменить имя или сделать первую букву в верхнем регистре как это public class Main { это может стать проблемой.

так в основной метода надо назвать ваш метод следующим образом:

int returnPosition = calculatePosition(2000); 
    printmethod("Michael" , returnPosition, 2000); 

Это будет печатать, например:

имя игрока является Майкл Пойнт был 2000 и позиция игрока хххх

EDIT

Если вы не хотите, чтобы пройти еще один атрибут в вашем методе вы можете хранить в как атрибут в своем классе, как это:

public class Help { 

    //attribute to put value of your point 
    public static int point; 

    public static void main(String args[]) throws IOException { 
     int returnPosition = calculatePosition(2000); 
     point = 200; 
     printMethod("Michael", returnPosition); 
    } 

    public static void printMethod(String playerName, int position){ 
     System.out.println("Player name is " + playerName + " Point was " + point + " and player position " + position); 
    } 
} 
+0

ok @Mr Rango проверить мой ответ сейчас, я изменил тип на Integer –

+0

Спасибо за ваш ответ. Там есть любой другой способ сделать это только для ввода только один раз? @YCL_L –

+0

Что вы имели в виду @MrRango? я тебя не понимаю? –

0

Я бы скорее таким образом

import java.util.Map; 
import java.util.TreeMap; 

public class Test { 

    public static void main(String[] args) { 

     Map<String, Integer> playersList = new TreeMap<>(); 

     playersList.put("Michael", 2000); 
     playersList.put("Mark", 900); 
     playersList.put("Halk", 800); 
     playersList.put("Albion", 700); 
     playersList.put("Cristine", 600); 
     playersList.put("Emma", 500); 
     playersList.put("Prince", 400); 
     playersList.put("Jason", 300); 
     playersList.put("Tim", 200); 
     playersList.put("Bob", 100); 
     playersList.put("Jackson", 50); 

     playersList.forEach((playerName, points) -> { 

      printMethod(playerName, points, calculatePosition(points)); 
     }); 
    } 

    public static void printMethod(String playerName, int point, int position) { 

     System.out.println("Player name is " + playerName + " Point was " + point + " and player position " + position); 
    } 

    public static int calculatePosition(int points) { 

     int position = 4; 

     if (points > 1000) { 
      position = 1; 
     } else if (points > 500 && points < 1000) { 
      position = 2; 
     } else if (points > 100 && points < 400) { 
      position = 3; 
     } 

     return position; 
    } 
} 
+0

Спасибо за ваш блестящий ответ. Спасибо большое. @Ravi MCA –