有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java:在使用其他方法后如何回到主方法

我对Java相当陌生,我遇到的问题是,这段代码可以编译,但在十六进制转换后不会运行;而是在hexartodecimal方法之后结束。我不能重用main方法,也不知道如何调用intreverse方法并实际运行它。有没有办法回到main或者我需要打电话到什么地方

import java.util.Scanner;
public class Homework4 {
    public static void main(String[]args) {
        // Sum and average of a set of intergers entered by the user
        // First we will declare some variables
        int userInput = 1;
        int positives = 0;
        int negatives = 0;
        int sum = 0;
        int numCount = 0;
        Scanner input = new Scanner(System.in);
        // Will start a while loop that will stop when user enters 20 integers
        while ((numCount <= 20)) {
            System.out.println("Please enter a nonzero integer or enter 0 to finish ");
            userInput = input.nextInt();
            if (userInput == 0) {
                break;
            } else if (userInput > 0) {
                positives += 1;
                numCount += 1;
                sum = sum + userInput;
            } else if (userInput < 0) {
                negatives += 1;
                numCount += 1;
                sum = sum + userInput;
            } else
                System.out.println("Error, please enter an integer");
            continue;
        }
        double average = (sum / numCount);
        System.out.println("The sum of the entered integers is " + sum);
        System.out.println("The average of the enetered integers is " + average);
        System.out.println("There are " + positives + " positive integers and " + negatives + " negative integers");

        // Convert Hexadecimal number to decimal

        // Ask the user to input a string of 5 digits or less in hex
        System.out.println("Please enter a hexadecimal number of up to 5 characters");
        String hex = input.next();
        if (hex.length() <= 5) {
            System.out.println(hex + " in decimal value is equal to " + hexToDecimal(hex.toUpperCase()));
        } else {
            System.out.println("Error: please enter a hex number of 5 digits or less");
        }
    }
    // Now we will create the method to convert to decimal
    public static int hexToDecimal(String hex) {
        int decimal = 0;
        for (int i = 0; i < hex.length(); i++) {
            char hexcharacter = hex.charAt(i);
            decimal = decimal * 16 + hexCharToDecimal(hexcharacter);
        }
        return decimal;
    }
    public static int hexCharToDecimal(char ch) {
        if (ch >= 'A' && ch <= 'F') // check to see if there is any letters in the string
            return 10 + ch - 'A';
        else
            return ch - '0';
    }

    // Print entered integer in reverse
    public static void intreverse(String[]args) {
        // Ask user for an integer to be reversed
        Scanner input = new Scanner(System.in);
        System.out.println("Please enter an integer to be reversed");
        int number = input.nextInt();
        reverse(number); // Method to be called
    }
    // Will now state our method
    public static void reverse(int number) {
        // use a while loop to get each digit
        while (number > 0) {
            System.out.print(number % 10);
            number = number / 10;
        }
    }
}

共 (1) 个答案

  1. # 1 楼答案

    if (hex.length() <= 5) {
        System.out.println(hex + " in decimal value is equal to " + hexToDecimal(hex.toUpperCase()));
    } else {
        System.out.println("Error: please enter a hex number of 5 digits or less");
    }
    

    将始终运行一次,因为它不包含在任何类型的循环中。如果希望在调用第二个case时再次运行,则将其包含在while(true)循环中,并在第一个case中使用break语句停止执行