2016-09-21 130 views
0

當我編譯並運行我的代碼時,輸​​出變得非常混亂,我想如果有人能告訴我如何讓我的輸出看起來不錯。如何在java中正確使用 n

import java.util.*; 
public class JavaApplication3 { 
    static Scanner sc = new Scanner(System.in); 
    public static void main(String[] args) { 
     int NumPerHamper; 
     int NumHampersMade; 
     int NumItemsLeftOver; 
     int NumAvalable; 
     double ValuePerHamper; 
     double ItemCost; 
     double ValueAllotedHamper; 
     double ValueItemsLeftOver; 
     String name=""; 
     Date TheDate = new Date(); 

     System.out.println("Enter the number of avaliable mac and cheese"); 
     NumAvalable = sc.nextInt(); 

     System.out.println("Enter the number of items per hamper"); 
     NumPerHamper = sc.nextInt(); 

     System.out.println("Price Of Item"); 
     ItemCost = sc.nextDouble(); 

     NumHampersMade = NumAvalable/NumPerHamper; 
     NumItemsLeftOver = NumAvalable % NumPerHamper; 
     ValuePerHamper = NumPerHamper * ItemCost; 
     ValueAllotedHamper = ValuePerHamper * NumHampersMade; 
     ValueItemsLeftOver = NumItemsLeftOver * ItemCost; 
     System.out.printf("\n"); 
     System.out.printf(TheDate + "\n"); 
     System.out.printf("Amount of Hampers Made: ", NumHampersMade,"\n"); 
     System.out.printf("The Items Left Over is: ", NumItemsLeftOver,"\n"); 
     System.out.printf("Each Value Of the Hampers are: $%.2f.", ValuePerHamper,"\n"); 
     System.out.printf("The Price Of All The Hampers Is: $%.2f.", ValueAllotedHamper,"\n"); 
     System.out.printf("The Value Of Mac And Cheese Is: $%.2f.", ValueItemsLeftOver,"\n"); 
    } 
} 
+0

嘗試使用'System.out.println'而不是'System.out.printf' – AndreFeijo

+0

爲什麼我複製/ PASE我的細節是,因爲這個網站說,我剛剛代碼,並沒有任何細節的唯一原因。 – Tyrandis

+0

我可以使用println,但我的老師希望我在印刷品中使用「,」,因此它將是printf,而不是println – Tyrandis

回答

1

這是不對的:

System.out.printf("Each Value Of the Hampers are: $%.2f.", ValuePerHamper,"\n"); 

的第一個參數(格式字符串)是你實際打印,更換「格式說明」,或佔位符後面的字符串。該字符串中的格式說明符(例如%.2f)會被其他參數替換。因此,第二個參數ValuePerHamper用於第一個說明符%.2f;而第三個參數\n用於第二個說明符--- um,除了沒有其他說明符,所以它根本不會被使用。

你想要把\n格式字符串:

System.out.printf("Each Value Of the Hampers are: $%.2f.\n", ValuePerHamper); 

printf,您還可以使用%n代替\n,這是更便攜,因爲它也將在Windows系統在哪裏工作去一個新行需要\r\n而不是\n。)

+0

還有一件事爲什麼它的輸出看起來像 剩下的項目是: – Tyrandis

+0

爲 System.out.printf(「剩下的項目是:\ n」,NumItemsLeftOver); – Tyrandis

+0

什麼是用'NumItemsLeftOver'替換的格式說明符? – ajb

1

您可以使用%n\n。這兩者中的任何一個都應該在printf()方法的第一個參數中。

System.out.printf("Each Value Of the Hampers are: $%.2f. %n", ValuePerHamper); 
System.out.printf("The Price Of All The Hampers Is: $%.2f.%n", ValueAllotedHamper); 
System.out.printf("The Value Of Mac And Cheese Is: $%.2f.%n", ValueItemsLeftOver); 

而你缺少%d第2行顯示的值。

System.out.printf("Amount of Hampers Made: %d %n", NumHampersMade); 
System.out.printf("The Items Left Over is: %d %n", NumItemsLeftOver);