我目前正在学习用Java编程,我对标题中列出的一元增量器有疑问,我在其他地方找不到.我刚开始玩它们,并且不能完全决定在for循环中使用哪一个,因为看起来前缀(增量然后评估)和后缀(评估然后增量)之间的行为的差异将不适用于for声明.所以我尝试了两者,两者都有效.这让我很担心,因为我想按照它们的使用方式使用它们.
所以我的问题是,它们是否可以在递增for循环时真正互换,或者是否存在一些模糊的问题我会在另一个副作用中遇到一个副作用?
我决定给他们计时(下图),++x肯定比他跑得快x++,但我不知道为什么.任何人都可以扩展吗?
谢谢!
public class PlusPlus
{
public static void main(String[] args)
{
long startTime1, startTime2, endTime1, endTime2;
final double COUNT = 100000000;
//times x++ incrementing
startTime1 = System.currentTimeMillis();
for(int x = 0; x < COUNT; x++);
endTime1 = System.currentTimeMillis();
System.out.println("x++ loop: " + (endTime1 - startTime1) + " milliseconds");
//times ++x incrementing
startTime2 = System.currentTimeMillis();
for(int x = 0; x < COUNT; ++x);
endTime2 = System.currentTimeMillis();
System.out.println("++x loop: " + (endTime2 - startTime2) + …Run Code Online (Sandbox Code Playgroud) 我写了一个字符串回文检查器,我的导师说它比它需要的更复杂.我已经阅读了类似的线程并且用谷歌搜索了,但我完全不知道如何使用比这更少的步骤来使用...
void isPal(string str){
int length = str.length();
if(length <= 1) cout << "Palindrome" << endl;//check for zero or one digit numbers
else if(str.at(0) == str.at(length -1)) {
str = str.substr(1, (length - 2));
isPal(str);}
else cout << "Not a palindrome." << endl;{
cin >> str;}
Run Code Online (Sandbox Code Playgroud)