[英]How do I combine strings and integers in a print statement?
我剛剛開始在大學課程中學習Java。 如果還沒有涵蓋所有陳述,但我認為我可以自己嘗試。 我最后遇到了一些我認為可以解決的語法錯誤,但是現在當我嘗試添加帶有整數的字符串時似乎出現了操作數錯誤。
我班上的問題是向用戶詢問他們的姓名,小時工資率以及他們工作多少小時。 我知道教授很快就會要求我們向用戶詢問他們是否獲得加班費。 如果他們這樣做,請問加班了幾個小時。 然后計算總付款額,其中任何加班費均為正常時薪的1.5倍。
但是我在最后3個打印語句中遇到錯誤,我認為這是因為我試圖將字符串和整數組合在一起。 我該如何解決?
package javaapplication2;
import java.util.Scanner;
public class JavaApplication2 {
public static void main(String [] args) {
Scanner input = new Scanner(System.in);
String name;
double payRate;
int hours;
Boolean OTyn;
int OTy;
System.out.println("What is your name?");
name = input.nextLine();
System.out.println("What is your hourly rate of pay?");
payRate = input.nextDouble();
System.out.println("How any hours have you worked?");
hours = input.nextInt();
System.out.println("Your boss pays overtime. Answer with true or false.");
OTyn = input.nextBoolean();
if (OTyn == true)
System.out.println("After how many hours are you paid for overtime?");
OTy = input.nextInt();
if (hours > OTy)
System.out.println("Your weekly pay is " + ((40 * payRate) + (hours - OTy)(payRate * 1.5)));
else
System.out.println("Your weekly pay is " + payRate * hours);
else
System.out.println("Your weekly pay is " + payRate * hours);
}
}
我認為您在ifs上缺少{}
if (OTyn == true) { //here
System.out.println("After how many hours are you paid for overtime?");
OTy = input.nextInt();
if (hours > OTy){ // Here doesn need because it is just one line after the if
System.out.println("Your weekly pay is " +
((40*payRate) + (hours - OTy)(payRate*1.5)));
// (hours - OTy)(payRate*1.5) you are missing an operator between this expressions
}else{
System.out.println("Your weekly pay is " + payRate*hours);
}
} else { //here
System.out.println("Your weekly pay is " + payRate*hours);
} //and here
另外,對於僅后一行的IF語句,您不需要{}
因為:
if ( something )
System.out.println("Something is true");
else
System.out.println("Something is false");
您缺少一組括號和一個星號,如下所示。
if (OTyn == true) { // <-- This brace to open.
System.out
.println("After how many hours are you paid for overtime?");
OTy = input.nextInt();
if (hours > OTy)
System.out.println("Your weekly pay is "
+ ((40 * payRate) + (hours - OTy)
* (payRate * 1.5))); // <-- at the start of this line.
else
System.out.println("Your weekly pay is "
+ payRate * hours);
} else // <-- That brace to close.
System.out.println("Your weekly pay is "
+ payRate * hours);
import java.util.Scanner;
public class JavaApplication2
{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String name;
double payRate;
int hours;
Boolean OTyn;
int OTy;
System.out.println("What is your name?");
name = input.nextLine();
System.out.println("What is your hourly rate of pay?");
payRate = input.nextDouble();
System.out.println("How any hours have you worked?");
hours = input.nextInt();
System.out.println("Your boss pays overtime. Answer with true or false.");
OTyn = input.nextBoolean();
if (OTyn == true){
System.out.println("After how many hours are you paid for overtime?");
OTy = input.nextInt();
if (hours > OTy){
System.out.println("Your weekly pay is " + ((40*payRate) + (hours - OTy)*(payRate*1.5)));
}
else{
System.out.println("Your weekly pay is " + payRate*hours);
}
}
else {
System.out.println("Your weekly pay is " + payRate*hours);
}
}
}
試試這個,不僅您缺少括號,而且此行也有問題
System.out.println("Your weekly pay is " + ((40*payRate) + (hours - OTy)(payRate*1.5)));
您需要在(hours - OTy)
和(payRate*1.5)
之間(payRate*1.5)
以(hours - OTy)*(payRate*1.5)
否則字符串連接將不起作用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.