出现语法错误,但奇怪的建议?

时间:2013-10-31 01:28:41

标签: java methods compiler-construction

import java.utils.Scanner; 

public class PD {
    public static void main(String[] args) { 

    System.out.print("Enter your number: " ); 
    int number = input.nextInt(); 
    System.out.println( DPPP(number) + "is double palidromic prime"); 

    }
    // main method checks every other method and returns a value that follows everything
    public static int DPPP( int number) {
        int count = 2;
            while (count < number) {
                String blank = "";
                String Snumber = count + blank; 
                if (isPalindromic(count) && isPrime(count) && 
                    isPalindromic(Snumber.length()) && isPrime(Snumber.length()))
                    return count;
                    count++;
            }
    }

    // method to find palindromic 
    public static boolean isPalindromic(int number) {
        String blank = ""; 
        String convert = count + blank; 
            for (int i = 0, int q = 1; i <= (convert.length()/2 - 1); i++, q++) { 
                if (convert.substring(i,q) == number.substring(number.length() - q, number.length() - i))
                    return true;
                else 
                    return false; 
        }
    }
    // method to find prime
    public static boolean isPrime(int number) {
        for (int divisor = 2; divisor <= number/2; divisor++) { 
            if (number % divisor == 0) { 
                return false; 
            }
        }
        return true; 
    }
}

错误:

PD.java:28: <identifier> expected
for (int i = 0, int q = 1; i <= (convert.length()/2 - 1); i++, q++) { 
               ^
PD.java:28: not a statement
for (int i = 0, int q = 1; i <= (convert.length()/2 - 1); i++, q++) { 
                             ^
PD.java:28: ')' expected
for (int i = 0, int q = 1; i <= (convert.length()/2 - 1); i++, q++) { 
                                                        ^
PD.java:28: ';' expected
for (int i = 0, int q = 1; i <= (convert.length()/2 - 1); i++, q++) { 
                                                             ^
PD.java:28: ';' expected
for (int i = 0, int q = 1; i <= (convert.length()/2 - 1); i++, q++) {

而且我不确定为什么要求放置一个;为什么它说这不是一个声明

总的来说,我得到了这个错误,我不明白为什么。 感谢您的帮助!我知道我的程序可能不正确,但我真的想专注于修复此错误。再次感谢您的帮助和时间。

4 个答案:

答案 0 :(得分:2)

问题似乎是在一个语句中有两个类型标识符(例如int i,int j;)。当您使用相同的语句声明两个变量时,它们被隐式赋予相同的类型,因此应该更改为:

for (int i = 0, q = 1; i <= (convert.length()/2 - 1); i++, q++) {

另一种选择是在循环中从i计算q:

for (int i = 0; i <= (convert.length()/2 - 1); i++) {
    int q = i+1;
    ...
}

答案 1 :(得分:1)

将初始化程序更改为:int i = 0, q = 1

答案 2 :(得分:0)

试试这个

for (int i = 0,; i <= (convert.length()/2 - 1); i++) { 
    if (convert.substring(i,i + 1) == number.substring(number.length() - i + 1, number.length() - i))

答案 3 :(得分:0)

我对你的for循环有一个评论,在停止条件下从不考虑q,因此在我看来把它放在循环中更合乎逻辑。

我把你的循环变成了这个:

int q = 1;
for (int i = 0; i <= (convert.length()/2 - 1); i++) {
    // code within the loop
    q++;
}

希望它对你有所帮助。