运算符区别:+=、==、+、++、=
Operator difference: +=, ==, +, ++, =
我正在学习如何使用 switch,但我使用了不同的运算符,程序不会 运行。只有 =
运算符工作。为什么其他运算符(+=
、==
、+
、++
)在这种情况下不起作用?
我是Java的初学者,请帮我解决这个幼稚的问题。
double shippingCost;
switch (shipping) {
case "Regular":
shippingCost + 0;
break;
case "Express":
shippingCost + 1.75;
break;
default:
shippingCost + .50;
}
return shippingCost;
您现在只是在制作表达式,您要做的是将表达式赋值给某物。
为了更好地理解代码
shippingCost + 1.75
Returns 一些值,你要做的就是将它分配给某物。
如果您希望值等于值加上某物,正确的语法是
variable += value
所以在你的例子中你可能想要
shippingCost += 1.75
如果你想使用
==
您可以将 returns 视为一个布尔值,即真值或假值。您可以像使用任何值一样将其分配给变量。或者您可以简单地使用值。
None 这些添加是完整的陈述。我认为您的期望可能是 shippingCost+1 等会导致 shippingCost 增加 1,但事实并非如此——如果它增加了,那么仅仅做一些基本的数学运算就会让事情变得非常尴尬:
print(productCost + packagingCost + shippingCost);
如果执行求和将某些东西存储回变量中,这会很快变得混乱;每次打印时,所有这些变量都会增加
我们必须明确说明我们想要发生什么。如果您希望 shippingCost 增加一,我们必须计算并将结果存储回去:
shippingCost = shippingCost + 1;
或使用 ++,定义为 "increment the variable by one",或使用 +=,定义为 "increase the variable on the left by the value on the right"
以下是完整语句的其他示例:
shippingCost = 0;
shippingCost++;
shippingCost += 2;
if(shippingCost == 3)
doSomething();
这不是声明:
shippingCost + 1;
除非您包含其他使用值结果的内容,如下所示:
shippingCost = shippingCost + 1;
double newShippingCost = shippingCost + 1;
print(shippingCost + 1);
在Java中计算结果而不对其进行任何操作不是合法的完整语句。我给出的例子是完整的陈述,对结果做了一些事情;大多数情况下,他们将结果(返回)存储到 shippingCost 变量中。从 0 开始,购物成本增加,然后再次增加,最后与值 3 进行比较(这会产生一个 true)
在Java
+ 运算结果需要赋值给一个目标变量,例如
a = 1+2;
+= 是一种简写,用于将值添加到一个变量并将结果分配给它自己。
a += 5; // is equivalent to a=a+5;
==只是用来比较的,比如
if(a==b) { //do something}
++ 用于递增一个数字,通常是整数
int a=1;
a++; //is equivalent to a=a+1; a=2 after running this statment.
首先你要了解这些运算符的用法。 += 运算符通常在您想要同时求和和赋值任务时使用。例如,在给定的代码中,'+=' 运算符用于将值添加到变量并将其一次性存储在该变量中。
'==' 运算符用于比较目的,在本例中 switch 会自动在 background.Like 中进行比较,在我们的例子中,运输变量与不同的 case 语句进行比较。
'+' 运算符只是对一些值求和。在您的情况下,您只是将值添加到 shippingCost 变量,而不是将其存储在任何变量中。
'++' 运算符是将变量的值递增 1.
适用于我的示例代码如下:
需要更正的两件事是在您的代码中使用它之前用某个值初始化 shippingCost 变量,并分别使用 += 运算符或 + 和 = 运算符添加一些值并将其分配给变量。
希望对您有所帮助。
String shipping = "Regular"
double shippingCost=0;
switch (shipping) {
case "Regular":
shippingCost += 0;
break;
case "Express":
shippingCost += 1.75;
break;
default:
shippingCost += .50;
}
return shippingCost;
Only =
operator worked. Why do the other operators (+=
, ==
, +
, ++
) not work in this case?
其他运算符会导致编译错误,但原因不同。
运算符 ==
和 +
进行比较或加法,产生一个新值,没有任何副作用。如果您将 a + b;
写成语句,那么该语句将不会影响您的程序执行的操作;理论上它可以将两个数字相加,但是 结果不会用于任何事情,因此该操作实际上什么都不做。
在这些情况下,编译器会报告错误,因为您不会有意编写什么都不做的代码,因此代码不能按照您的意图执行,而编译器会告诉您。
运算符 +=
和 ++
确实有副作用,但它们会因不同的原因导致编译错误。当你声明一个像 double shippingCost;
这样没有初始值的局部变量时,你不能在表达式中使用这个变量,直到它被其他表达式 definitely assigned 稍后。
这意味着如果你写了类似 System.out.println(shippingCost);
的东西,你会得到一个编译错误,因为你试图打印一个变量的值,但是那个变量还没有赋值给它,所以没有可以打印的值。同样,如果您写 shippingCost += 1.75
或 shippingCost++
,那么您正在尝试向旧值添加一些内容,但是 没有要添加到 的旧值。因此存在编译错误。
我正在学习如何使用 switch,但我使用了不同的运算符,程序不会 运行。只有 =
运算符工作。为什么其他运算符(+=
、==
、+
、++
)在这种情况下不起作用?
我是Java的初学者,请帮我解决这个幼稚的问题。
double shippingCost;
switch (shipping) {
case "Regular":
shippingCost + 0;
break;
case "Express":
shippingCost + 1.75;
break;
default:
shippingCost + .50;
}
return shippingCost;
您现在只是在制作表达式,您要做的是将表达式赋值给某物。
为了更好地理解代码
shippingCost + 1.75
Returns 一些值,你要做的就是将它分配给某物。
如果您希望值等于值加上某物,正确的语法是
variable += value
所以在你的例子中你可能想要
shippingCost += 1.75
如果你想使用
==
您可以将 returns 视为一个布尔值,即真值或假值。您可以像使用任何值一样将其分配给变量。或者您可以简单地使用值。
None 这些添加是完整的陈述。我认为您的期望可能是 shippingCost+1 等会导致 shippingCost 增加 1,但事实并非如此——如果它增加了,那么仅仅做一些基本的数学运算就会让事情变得非常尴尬:
print(productCost + packagingCost + shippingCost);
如果执行求和将某些东西存储回变量中,这会很快变得混乱;每次打印时,所有这些变量都会增加
我们必须明确说明我们想要发生什么。如果您希望 shippingCost 增加一,我们必须计算并将结果存储回去:
shippingCost = shippingCost + 1;
或使用 ++,定义为 "increment the variable by one",或使用 +=,定义为 "increase the variable on the left by the value on the right"
以下是完整语句的其他示例:
shippingCost = 0;
shippingCost++;
shippingCost += 2;
if(shippingCost == 3)
doSomething();
这不是声明:
shippingCost + 1;
除非您包含其他使用值结果的内容,如下所示:
shippingCost = shippingCost + 1;
double newShippingCost = shippingCost + 1;
print(shippingCost + 1);
在Java中计算结果而不对其进行任何操作不是合法的完整语句。我给出的例子是完整的陈述,对结果做了一些事情;大多数情况下,他们将结果(返回)存储到 shippingCost 变量中。从 0 开始,购物成本增加,然后再次增加,最后与值 3 进行比较(这会产生一个 true)
在Java + 运算结果需要赋值给一个目标变量,例如
a = 1+2;
+= 是一种简写,用于将值添加到一个变量并将结果分配给它自己。
a += 5; // is equivalent to a=a+5;
==只是用来比较的,比如
if(a==b) { //do something}
++ 用于递增一个数字,通常是整数
int a=1;
a++; //is equivalent to a=a+1; a=2 after running this statment.
首先你要了解这些运算符的用法。 += 运算符通常在您想要同时求和和赋值任务时使用。例如,在给定的代码中,'+=' 运算符用于将值添加到变量并将其一次性存储在该变量中。
'==' 运算符用于比较目的,在本例中 switch 会自动在 background.Like 中进行比较,在我们的例子中,运输变量与不同的 case 语句进行比较。 '+' 运算符只是对一些值求和。在您的情况下,您只是将值添加到 shippingCost 变量,而不是将其存储在任何变量中。 '++' 运算符是将变量的值递增 1.
适用于我的示例代码如下: 需要更正的两件事是在您的代码中使用它之前用某个值初始化 shippingCost 变量,并分别使用 += 运算符或 + 和 = 运算符添加一些值并将其分配给变量。 希望对您有所帮助。
String shipping = "Regular"
double shippingCost=0;
switch (shipping) {
case "Regular":
shippingCost += 0;
break;
case "Express":
shippingCost += 1.75;
break;
default:
shippingCost += .50;
}
return shippingCost;
Only
=
operator worked. Why do the other operators (+=
,==
,+
,++
) not work in this case?
其他运算符会导致编译错误,但原因不同。
运算符 ==
和 +
进行比较或加法,产生一个新值,没有任何副作用。如果您将 a + b;
写成语句,那么该语句将不会影响您的程序执行的操作;理论上它可以将两个数字相加,但是 结果不会用于任何事情,因此该操作实际上什么都不做。
在这些情况下,编译器会报告错误,因为您不会有意编写什么都不做的代码,因此代码不能按照您的意图执行,而编译器会告诉您。
运算符 +=
和 ++
确实有副作用,但它们会因不同的原因导致编译错误。当你声明一个像 double shippingCost;
这样没有初始值的局部变量时,你不能在表达式中使用这个变量,直到它被其他表达式 definitely assigned 稍后。
这意味着如果你写了类似 System.out.println(shippingCost);
的东西,你会得到一个编译错误,因为你试图打印一个变量的值,但是那个变量还没有赋值给它,所以没有可以打印的值。同样,如果您写 shippingCost += 1.75
或 shippingCost++
,那么您正在尝试向旧值添加一些内容,但是 没有要添加到 的旧值。因此存在编译错误。