当前位置: 首页 > 知识库问答 >
问题:

do而循环不会读取循环中输入的变量

盖和洽
2023-03-14

对于我的程序,我要编写一个程序,它接受2到10之间的行数。生成n行的乘法三角形。每行包含的条目不超过其行大小。这一点我没有问题。但是,在用户将数字0输入到我的问题“请输入要打印的行数:”之后,应该终止循环并打印“感谢您使用此程序!”我用了一个DO。。。WHILE循环以确定用户是否希望继续。在我的循环中,我将用户想要打印的数字声明为int num。我的循环应该持续到num

import java.io.*;
import java.util.*;
public class Prog166g
{ //begin testshell 
public static void main (String[] args)
{ //begin main
 int i;
    int outer;
    int inner;
    int result;
    int example = 4;
    System.out.print("Number of rows for this triangle : " + example +"\n");
    for ( i = 1; i <= example; i++) {
        System.out.printf("%5s", i);
    }
    System.out.println("");
    for ( outer = 1; outer <= 4; outer++) {
        for ( inner = 1; inner <= outer; inner++) {
            result = outer * inner;
            System.out.printf("%5s", result);
        }
        System.out.println("");
    }
    System.out.println("");

        do{
        System.out.print("Please enter the number of rows you would like to print: ");
        Scanner kbReader = new Scanner(System.in);
        int num = kbReader.nextInt();
        System.out.println("");
        System.out.println("Number of rows for this triangle: " + num);
        for ( i = 1; i <= num; i++) {
            System.out.printf("%5s", i);
        }
        System.out.println("");
        for ( outer = 1; outer <= num; outer++) {
            for ( inner = 1; inner <= outer; inner++) {
                result = outer * inner;
                System.out.printf("%5s", result);
            }
        }
     }while (num>=1);


   System.out.println("Thank you for using this program"); 
}// ends main
}//ends testshell

共有2个答案

丌官招
2023-03-14

num变量超出范围。只需在循环上方的某个位置声明它。

int example = 4;
int num; //Declare num here
System.out.print("Number of rows for this triangle : " + example +"\n");
for ( i = 1; i <= example; i++) {
    System.out.printf("%5s", i);
}
System.out.println("");
for ( outer = 1; outer <= 4; outer++) {
    for ( inner = 1; inner <= outer; inner++) {
        result = outer * inner;
        System.out.printf("%5s", result);
    }
    System.out.println("");
}
System.out.println("");

    do{
    System.out.print("Please enter the number of rows you would like to print: ");
    Scanner kbReader = new Scanner(System.in);
    num = kbReader.nextInt();
    System.out.println("");
    System.out.println("Number of rows for this triangle: " + num);
    for ( i = 1; i <= num; i++) {
        System.out.printf("%5s", i);
    }
    System.out.println("");
    for ( outer = 1; outer <= num; outer++) {
        for ( inner = 1; inner <= outer; inner++) {
            result = outer * inner;
            System.out.printf("%5s", result);
        }
    }
 }while (num>=1);


  System.out.println("Thank you for using this program"); 
}// ends main
}//ends testshell
羊舌洛华
2023-03-14

您的“num”声明必须在“do”之前。这可以是:

...
int num;
do {
    ...
    num = kbReader.nextInt();
    ...;
}
...
 类似资料:
  • do loop用于执行一定次数的语句。 需要执行语句的次数由传递给do循环的值确定。 语法 (Syntax) do循环语句的语法如下 - do count statement #1 statement #2 ... End Statement#1 and Statement#2是一系列在do循环中执行的语句。 count变量表示do循环需要执行的次数。 流程图 (Fl

  • 当布尔条件为True或者条件变为True时,它会重复封闭的语句块。 它可以随时使用Exit Do语句终止。 此循环结构的语法是 - Do { While | Until } condition [ statements ] [ Continue Do ] [ statements ] [ Exit Do ] [ statements ] Loop -or- Do

  • do循环结构允许迭代地执行语句或一系列语句,而给定条件为真。 语法 (Syntax) do循环的一般形式是 - do var = start, stop [,step] ! statement(s) … end do Where, 循环变量var应该是一个整数 start是初始值 stop是最终值 step是增量,如果省略,则变量var增加1 例如 (For example)

  • 问题内容: 我被困在我应该声明一个称为“ phrase”的字符串变量的部分,该变量不应一直循环播放。 让您知道我的任务是:与选项1相似,不同之处在于用户在输入第一队的结果后输入“ N”(而不是“ Q”)。然后,程序输入第二个团队名称及其结果,直到输入“ Q”。输出两个语句,例如选项1中的语句,然后输出第三条语句,该语句说明哪个团队处于第一位(基于点数) 输入样例: 样本输出: 更新 : 我的代码:

  • 与while循环顶部测试循环条件的for和while循环不同, do...while循环do...while循环底部检查其条件。 do...while循环类似于while循环,除了do ... while循环保证至少执行一次。 语法 (Syntax) Perl中do...while循环的语法是 - do { statement(s); }while( condition ); 应该注意的是

  • 与while循环顶部测试循环条件的for和while循环不同,Objective-C编程语言中的do...while循环检查循环底部的条件。 do...while循环类似于while循环,除了do ... while循环保证至少执行一次。 语法 (Syntax) Objective-C编程语言中do...while循环的语法是 - do { statement(s); } while( co