Java 当循环不工作时,你会做什么?(找不到变量)
我在do while循环中遇到问题,无法找到要测试条件是否为真的变量。这是我的密码:Java 当循环不工作时,你会做什么?(找不到变量),java,Java,我在do while循环中遇到问题,无法找到要测试条件是否为真的变量。这是我的密码: import java.util.Scanner; public class Loops { public static void main(String[] args){ System.out.println("Programmer: Jarred Sylvester"); System.out.println("Course: COSC 111, Winter 2016");
import java.util.Scanner;
public class Loops
{
public static void main(String[] args){
System.out.println("Programmer: Jarred Sylvester");
System.out.println("Course: COSC 111, Winter 2016");
System.out.println("Lab#: 5");
System.out.println("Due date: Feb. 18, 2016");
Scanner prompt = new Scanner(System.in);
do{
System.out.print("\nEnter a whole number: ");
int num = prompt.nextInt();
if(num % 2 == 0){
System.out.println(num + " is even");
}
else{
System.out.println(num + " is odd");
}
System.out.println("\nNumbers from 1 through " +num+ " are:");
for(int counter = 1; counter <= num; counter++){
System.out.print(counter + " ");
}
int counter = 1;
System.out.println("\n\nSquare of odd numbers from 1 through " + num + " are:");
while(counter <= num){
if(counter % 2 ==1){
System.out.print((counter * counter)+ " ");
}
counter++;
}
counter = 1;int sum =0;
System.out.println("\n\nSum of even numbers from 1 through " +num+ " is:");
while(counter <= num){
if(counter % 2 == 0){
sum+=counter;
}
counter++;
}
System.out.print(sum);
System.out.println("\n\nNumbers from 1 through "+num+"(5 numbers per line):");
for(int count = 1; count <= num; count++){
System.out.print(count + " ");
if(count % 5 == 0){
System.out.print("\n");
}
}
System.out.println("\n\nDo it again, yes(or no)?");
String play = prompt.next();
}while(play.equalsIgnoreCase("yes"));
}
import java.util.Scanner;
公共类循环
{
公共静态void main(字符串[]args){
System.out.println(“程序员:Jarred Sylvester”);
系统输出打印(“课程:COSC 111,2016年冬季”);
System.out.println(“实验室:5”);
系统输出打印号(“到期日:2016年2月18日”);
扫描仪提示=新扫描仪(System.in);
做{
System.out.print(“\n输入一个整数:”);
int num=prompt.nextInt();
如果(数值%2==0){
System.out.println(num+“是偶数”);
}
否则{
System.out.println(num+“是奇数”);
}
System.out.println(“\n从1到”+num+的数字为:”;
for(int counter=1;counterplay
必须在do-while循环之前声明,以便在while
条件的范围内
String play = "";
do {
...
play = prompt.next();
} while(play.equalsIgnoreCase("yes"));
您超出了作用域,因为您使用的是“代码> > {{}”/代码>循环。当java达到 Do/<代码>语句时,它跳过到<>代码> St声明,以确保它返回true。
如果使用while(condition){body}
语句,则更容易看到变量的正确范围,因为变量位于顶部,我们自然希望首先执行的代码位于顶部
因此,我将使用如上所述的while循环,并且您必须在该行之前声明play
变量。希望它能起作用:)而不是将play
声明为局部变量,将其声明为类级变量
String play;
do {
...
play = prompt.next();
} while(play.equalsIgnoreCase("yes"));
请阅读“”,注意其中的最小部分。并修正缩进,使代码对您自己和其他人都可读。虽然您是正确的。已经说过这一点的答案在您的16分钟之前发布了…在检查代码时,我们没有人发布。后来我意识到。