在java中编译简单的hasse算法程序时出现非法字符错误



我似乎无法弄清楚为什么下面的代码无法编译。我为该行出现一个错误,说: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); 
      }              
 } 
}}
public static void main(string[] args)

应该是

                        ↓
public static void main(String[] args)

Java 区分大小写!

此外number应该是字符串而不是int,这不会编译(或使用nextInt而不是next)。

使用以下 :

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

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

 int number = tastatur.nextInt();
 tastatur.nextLine();

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

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

这将编译。我已经关闭了扫描仪。和你正在运行无限而循环

import 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();
    }
}

最新更新