2013-09-05 4 views
-6

Вот моя программа, как это прямо сейчас:Мой Java приложение не может скомпилировать

import java.util.Scanner; 

public class SelfAssessment 
{ 

public static void main(int num, int counter, String str) 
{ 
    Scanner sc = new Scanner(System.in); 
    System.out.println("Enter a number:"); 
    num = sc.nextInt(); 
    SelfAssessment.function1(num); 
    SelfAssessment.function2(str); 

} 

//Collatz function 
public static int function1(int num) (Collatz conjecture) 
{ 
    if(num < 1) 
    { 
     return -1; 
    } 
    else if(num >= 1) 
    { 
     while(num>=1) 
     { 
      if(num%2 == 1) 
      { 
      num = (num*3)+1; 
      System.out.println(num); 
      } 
     else if(num%2 == 0 && num != 1) 
     { 
      num = num/2; 
      System.out.println(num); 
     } 
     } 
} 
    return num; 
} 

public static int function2(String str) (method to count up the lower-case e's and upper-case d's in a string) 
{ 
    System.out.println("Enter a string:"); 
    str = in.NextLine(); 
    char ch; 
    int lowereCount; 
    int upperDCount; 
    if(ch = 'e') 
    { 
     lowereCount++; 
    } 
    else if(ch='D') 
    { 
     upperDCount++; 
    } 
} 

public static int function3(int arr[], int findNum, int arraySize) (method to search for a certain character and return it (if found) 
{ 
    System.out.println("Enter numbers into array:"); 
    Scanner sc = new Scanner(System.in); 
    InputStreamReader isr = new InputStreamReader(System.in); 
    BufferedReader br = new BufferedReader(isr); 
    for(int x=0; x<2; i++) 
    { 
     arraySize = Integer.parseInt(br.readLine()); 
    } 
    for(int i=0; i<arraySize;i++) 
    { 
     arr[i] = sc.nextInt(); 
    } 
    for (int i = 0; i<arr.length; i++) 
    { 
     if(arr[i] == findNum) 
     { 
      return i; 
     } 
     else if(arr[i] == findNum) 
     { 
      return -1; 
     } 
    } 
} 
} 

Вопросы, я имею сейчас (по крайней мере те, которые я могу вспомнить с верхней части моей головы) являются следующие:

  1. При попытке запустить его, он говорит, что не может найти класс SelfAssessment
  2. в методе function3, он говорит, что он не может найти InputStreamReader и BufferedStreamReader

Я знаю, что есть еще несколько ошибок, но я просто не могу думать о них прямо сейчас.

Может ли кто-то также проверить мой код, чтобы увидеть, есть ли другие ошибки?

+6

Вы используете IDE, например Eclipse? Это будет быстрее, чем спрашивать о SO ... – Julien

+2

Для вопроса 1: как вы пытаетесь запустить эту программу? На вопрос 2: вы не импортировали пакет, где вы можете найти эти классы. Как отметил @Julien, это будет быстрее, если вы сначала начнете работать в среде IDE, например Eclipse или Netbeans (я очень рекомендую это, если вы на этапе обучения). –

+4

_Кроме того, кто-то может проверить мой код, чтобы узнать, есть ли еще какие-то ошибки? _ Вы должны это сделать, мы можем помочь вам в решении ошибок, но вы должны _find_ их, это ваше приложение, а не наше, вы должны отлаживать, а не нас , – BackSlash

ответ

3
  • > При попытке запустить его, он говорит, что не удается найти класс SelfAssessment

Возможно это из-за поздней проблемы.

  • > В методе FUNCTION3, он говорит, что он не может найти InputStreamReader и BufferedStreamReader

Вы должны вставить к верхнему уровню

import java.io.InputStreamReader; 
import java.io.BufferedStreamReader; 
1
  1. При попытке запустить его, он говорит, что не может найти класс SelfAssessment

Когда JVM загружает ваш класс, он ищет public static void main(String[] args). Вам это не хватает.

public static void main(String[] args){} 

Вы

public static void main(int num, int counter, String str){} 

Для вашего второго вопроса; Импортируйте следующее:

import java.io.InputStreamReader; 
import java.io.BufferedStreamReader; 
+0

Ничего себе. Должен знать, что главное так. Кроме того, я сейчас изменил программу, поскольку понял, что мне не нужен пользовательский ввод. Но теперь, когда я пытаюсь запустить первую функцию, она просто продолжает цикл. Должен ли я иметь цикл for в этой функции (функция Collatz) вместо цикла while? –

+0

@DanGoWildCzarnecki Да .. Рассмотрите возможность использования цикла for. Ваш цикл while проверяет, есть ли num> = 1 и num = num/2; никогда не вернется в цикл while. Вам нужно изменить его на num> 1, а не> =. Надеюсь это поможет. Также, если ответ был полезен, закройте вопрос, приняв ответ. – JNL

0

Если он не скомпилирован - прочитайте сообщения компилятора сверху вниз. Они говорят точно, что не так.

Смежные вопросы