0

我似乎无法弄清楚为什么下面的代码无法编译。我收到一条错误消息:if ((number % 2) == 0) {. 错误消息说:“非法字符”。该程序应该取一个数字 n。如果 n == 为 1,则程序停止。如果 n 是奇数,则新的 n == (n*3)+1。如果 n 是偶数,则新 n == n/2。

import java.util.Scanner; 
import java.lang.Math.*; 

public class HasseAlgoritme {

public static void main(string [] args) {
 Scanner tastatur = new Scanner(System.in); 

 System.out.print("Input the first starting number"); 
 int number = tastatur.next(); 

 while (number != 1) { 
  System.out.print(number);        
      if ((number % 2) ==  0) {       
        System.out.println(number);
      }          
      else {
        number = (number*3)+1; 
        System.out.print(number); 
      }              
 } 
}}
4

6 回答 6

5
public static void main(string[] args)

应该

                        ↓
public static void main(String[] args)

Java区分大小写!

number应该是 String 而不是int,这不会编译(或使用nextInt代替next)。

于 2013-09-09T09:49:42.650 回答
0

int number = tastatur.nextInt();使用 this:或
this:读取整数int number = Integer.parseInt(tastatur.next());

于 2013-09-09T09:50:31.287 回答
0

如果正在输入数字,扫描仪应使用nextInt()

 int number = tastatur.nextInt();
 tastatur.nextLine();
于 2013-09-09T09:50:35.440 回答
0

tastatur.next();返回String,您可能想tastatur.nextInt();改用

于 2013-09-09T09:50:40.367 回答
0

这将编译。我已经关闭了扫描仪。并且您正在运行无限的while循环

导入 java.util.Scanner;

public class HasseAlgoritme {
    public static void main(String [] args) { 
        Scanner tastatur = new Scanner(System.in);
        System.out.print("Input the first starting number"); 
        int number = Integer.valueOf(tastatur.next()); 
        while (number != 1) { 
            System.out.print(number);
            if ((number % 2) ==  0) { 
                System.out.println(number);
            }
            else {
                number = (number*3)+1; 
                System.out.print(number); 
            } 
        } 
        tastatur.close();
    }

}
于 2013-09-09T09:50:58.867 回答
0

更改Scanner.next()Scanner.nextInt()

于 2013-09-09T09:51:06.523 回答