2013-04-15 146 views
0

的错误是“找不到符号变量b” 我想了解以及如何正确地写的语法做while循环 感谢。找不到符号变量

import java.util.*; 

public class pract3ex10 { 

    public static void main(String[] args) { 
     Scanner s = new Scanner(System.in); 
     do { 
      System.out.println("Enter a positive"); 
      int n = s.nextInt(); 
      int x = n; 
      int m = 0; 
      if (x < 0) { 
       System.out.println("Thank You!"); 
      } else { 
       while (x > 0) { 
        x = x/10; 
        m++; 
       } 
       System.out.println("Number of digits in " + n + "= " + m); 
      } 
     } while (n > 0); 

    } 

} 
+2

哪里是变量b的代码? – Ankit

+0

您将需要[while和do-while语句](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html) – Smit

+0

当我在Java7中编译代码时,我得到'n不能被解析为一个变量'并且看起来是正确的,因为'n'是在'do {..} while循环中定义的,所以它在'while'条件之外。也许尝试在循环之前声明'int n = -1'。 – Pshemo

回答

2

n变量的范围目前是仅DO-而块内,在大括号内。如果你希望它在更大范围内可访问,即使这意味着循环的条件,然后在循环之外声明它。

int n; 
do 
{ 
    n = s.nextInt(); 
    ... 
1
int n; 
do { 
    ... 
    n = s.nextInt(); 
    ... 
} while (n > 0); 
1

n应在do..while块之前声明...