gpt4 book ai didi

java - 为什么 Java 和 PHP 的相同代码不起作用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:57:28 25 4
gpt4 key购买 nike

我用 PHP 和 Java 编写了一个程序,它生成所有可能的长度为 2 的单词。我用了递归。为什么该程序在 Java 中运行但在 PHP 中运行不正常?这是相同的代码。

Java

package com.company;


public class Words {
public static void main(String[] args) {
generate("", 2);
}

static void generate(String prefix, int remainder) {
if (remainder == 0) {
System.out.println(prefix);
} else {
for (char c = 'A'; c <= 'Z'; c++) {
generate(prefix + c, remainder - 1);
}
}
}
}

PHP

generate('', 2);

function generate($prefix, $remainder)
{
if ($remainder == 0) {
echo "$prefix\n";
} else {
for ($c = 'A'; $c <= 'Z'; $c++) {
generate($prefix . $c, $remainder - 1);
}
}
}

最佳答案

$c 在 PHP 中有字符串类型。与数字相比,++ 运算符的工作方式不同。

PHP 在处理字符变量而非 C 的算术运算时遵循 Perl 的约定。例如,在 PHP 和 Perl 中 $a = 'Z'; $a++;$a 转换为 'AA',而在 C 中 a = 'Z'; a++; 将 a 转换为 '[' ('Z' 的 ASCII 值为 90,'[' 的 ASCII 值为 91)。请注意,字符变量可以递增但不能递减,即使如此,也只支持纯 ASCII 字母和数字(a-z、A-Z 和 0-9)。增加/减少其他字符变量没有效果,原始字符串不变。

来源:http://php.net/manual/en/language.operators.increment.php

关于java - 为什么 Java 和 PHP 的相同代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46579259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com