簡體   English   中英

意外類型 必需:發現的變量:值

[英]unexpected type Required: Variable Found: Value

import java.util.*;
public class happy_number
{
    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter a number: ");
        String num = in.next();
        for (int i = 0; i < num.length(); i++){
            double index = num.charAt(i);
            (double)index = Math.pow((double)i,2);
            System.out.println(index);
        }
   }
}

出於某種原因,for 循環中的第二行以意外類型返回 - 必需:找到的變量:值。 任何見解?

錯誤:錯誤的圖像

它不會繼續要求您提供意見。 這里發生的事情是,對於某些類型的輸入(在這種情況下是非幻數),執行得到了無限循環。

例如:讓我們以44為例,下面將是 for 循環中每次迭代的值。

數量 編號 1 數量 2
開始 44 —— ——
第一次迭代后 8 4 4
第二次迭代后 8 8 0
第三次迭代后 8 8 0

我們可以看到執行 get 在循環中被觸發。 當您獲得此類輸入時,您必須退出循環。

退出循環的一種方法是在 for 循環中添加條件。 另一種方法是在for循環中加入if語句,根據條件退出循環。

您必須根據您的問題陳述決定應該使用什么條件才能退出循環。

查看循環和內部填充的值。 沒有發現破壞條件和對幻數的正確測試:

一個簡單的代碼:

public static void main(String args[]) {

        Scanner in = new Scanner(System.in);
        System.out.print("Enter number to check: ");
        int num = in.nextInt();
        int n = num;

        while (n > 9) {
            int sum = 0;
            while (n != 0) {
                int d = n % 10;
                n /= 10;
                sum += d;
            }
            n = sum;
        }

        if (n == 1)
            System.out.println(num + " is Magic Number");
        else
            System.out.println(num + " is not Magic Number");

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM