Java输入整数打印对应星号水平条代码运行仅输出单星号问题求助
问题原因
代码存在两个语法逻辑错误:
- 所有
for循环声明的末尾额外添加了分号;:Java中单独的分号代表空语句,这会导致for循环的循环体被判定为这一个空分号,后续大括号内打印星号的代码不属于循环体,只会执行一次,所以每行只会输出1个星号。 - 循环判断条件写为
i < 变量-1:即便去掉多余分号,该条件也只会让循环执行输入值-1次,输出的星号数量会比预期少1个。
修复方案
- 删除每个
for循环末尾多余的分号 - 将循环判断条件修改为
i < 输入的数值变量,保证循环次数和输入值一致
修复后完整代码
import java.util.*; public class assign { public static void main(String[]args){ Scanner scanner=new Scanner(System.in); System.out.println("Enter first number between 1 to 30"); int a = scanner.nextInt(); System.out.println("Enter second number between 1 to 30"); int b = scanner.nextInt(); System.out.println("Enter third number between 1 to 30"); int c = scanner.nextInt(); System.out.println("Enter fourth number between 1 to 30"); int d = scanner.nextInt(); System.out.println("Enter fifth number between 1 to 30"); int e = scanner.nextInt(); scanner.close(); for(int i=0;i<a;i++){ System.out.print("*"); } System.out.println(); for(int i=0;i<b;i++){ System.out.print("*"); } System.out.println(); for(int i=0;i<c;i++){ System.out.print("*"); } System.out.println(); for(int i=0;i<d;i++){ System.out.print("*"); } System.out.println(); for(int i=0;i<e;i++){ System.out.print("*"); } System.out.println(); } }
原错误运行效果截图

内容的提问来源于stack exchange,提问作者Taj Shirajbhai
相关产品推荐
相关产品推荐

