Java 当(n-!=0){}在这段代码中做什么?
在下面的代码中,这一行翻译成什么Java 当(n-!=0){}在这段代码中做什么?,java,Java,在下面的代码中,这一行翻译成什么 而(n-!=0){}?如果从子字符串的长度中扣除searchMe的长度时,我没有误认为n是18,那么这行是否表示,当18递减(17)不等于0时,进行搜索 class ContinueWithLabelDemo { public static void main(String[] args) { String searchMe = "Look for a substring in me"; String substrin
而(n-!=0){}
?如果从子字符串的长度中扣除searchMe
的长度时,我没有误认为n是18,那么这行是否表示,当18递减(17)不等于0时,进行搜索
class ContinueWithLabelDemo {
public static void main(String[] args) {
String searchMe = "Look for a substring in me";
String substring = "sub";
boolean foundIt = false;
int max = searchMe.length() -
substring.length();
test:
for (int i = 0; i <= max; i++) {
int n = substring.length();
int j = i;
int k = 0;
while (n-- != 0) {
if (searchMe.charAt(j++) != substring.charAt(k++)) {
continue test;
}
}
foundIt = true;
break test;
}
System.out.println(foundIt ? "Found it" : "Didn't find it");
}
}
class ContinueWithLabelDemo{
公共静态void main(字符串[]args){
String searchMe=“查找我的子字符串”;
字符串substring=“sub”;
布尔foundIt=false;
int max=searchMe.length()
substring.length();
测试:
对于(inti=0;i,在您编写的代码中:
while (n-- != 0) {
if (searchMe.charAt(j++) != substring.charAt(k++)) {
continue test;
}
}
因此,如果您将代码替换为以下代码:
while (n != 0) {
n = n-1;
if (searchMe.charAt(j++) != substring.charAt(k++)) {
continue test;
}
}
这两个代码的工作原理完全相同,因此我认为通过比较,您可以理解其含义。在您编写的代码中:
while (n-- != 0) {
if (searchMe.charAt(j++) != substring.charAt(k++)) {
continue test;
}
}
因此,如果您将代码替换为以下代码:
while (n != 0) {
n = n-1;
if (searchMe.charAt(j++) != substring.charAt(k++)) {
continue test;
}
}
这两个代码的工作原理完全相同,因此我认为通过比较,您可以理解它的含义。n——实际上是一种在幕后将n的值更改为n-1的方法,但当前返回n的实际值,因为在这种情况下,它是一个后缀操作
如果它是一个前缀运算(-n),那么返回的值将是17,正如您所说的
基本上,n——意味着取n的当前值,并将其用于此行,但在此行之后,将值减1。在这种情况下,n的第一个值将是字符串的长度n——实际上是一种在幕后将n的值更改为n-1的方法,但返回n的实际值,因为它是本例中的后缀操作
如果它是一个前缀运算(-n),那么返回的值将是17,正如您所说的
基本上,n--表示取n的当前值并将其用于此行,但在此行之后,将值减1。在这种情况下,n的第一个值将是字符串的长度条件n-!=0
表示“在递减之前,检查n
是否不等于零;检查之后,将n
设置为n-1
。”
这意味着当n
等于循环前的某个数字K
时,循环将精确地重复K
次。条件n-!=0
意味着“在递减之前检查n
不等于零;在检查后将n
设置为n-1
。”
while (n-- != 0) { // checks (n != 0) then n = n-1;
if (searchMe.charAt(j++) != substring.charAt(k++)) {
continue test;
}
}
这意味着当n
等于循环前的某个数字K
时,循环将精确地重复K
次
while (n-- != 0) { // checks (n != 0) then n = n-1;
if (searchMe.charAt(j++) != substring.charAt(k++)) {
continue test;
}
}
此n--
将执行后减量,首先检查条件,然后将n的值减少1
假设n的值为10。然后它将首先检查条件,
如果(10!=0)
在此之后,它将减少到9
此n--
将执行后减量,首先检查条件,然后将n的值减少1
假设n的值为10。然后它将首先检查条件,
if(10!=0)
之后它将减少到9。基本上是的。这基本上是一个循环,当n不等于零时,n-!=0
的条件成立。只需注意,n-
是一个后减量运算符,它将返回n的当前值,然后在比较!=0
后减量n。基本上是的。这基本上是一个循环,当n不等于0时,n-->=0
条件保持为真。请注意,n-->
是一个后减量运算符,它将返回n的当前值,然后在比较!=0
后减量n。