[英]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.