代码
package CM.structure;
import java.util.Scanner;
public class ForStr {
public static void main(String[] args) {
int i = 0;
int sum1 = 0;
int sum2 = 0;
//循环判断当输入数不为自然数时,自动循环从头
do {
i = 0;
//输入用户数据
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你需要求和的数:");
int number = scanner.nextInt();
//判断是否是自然数
if (number > 0) {
//偶数
for (int a = 0; a <= number; a += 2) {
sum1 += a;
}
System.out.println("偶数和为:" + sum1);
//奇数
for (int b = 1; b <= number; b += 2) {
sum2 += b;
}
System.out.println("奇数和为:" + sum2);
} else {
System.out.println("你输出的数值不是自然数,请重新输入!");
i = 1;
}
//scanner.close(); 注释问题一
}while(i == 1);
//scanner。close(); 注释问题二
}
}
存在问题
问题一
当输入数值不为正整数时,程序自然循环后,存在错误如下所示:
请输入你需要求和的数:
-1
你输出的数值不是自然数,请重新输入!
请输入你需要求和的数:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at CM.structure.ForStr.main(ForStr.java:17)
Process finished with exit code 1
问题二
当讲scanner.close();语句移除循环时,程序报错:
存在不理解知识点,只记录其问题。
希望大佬们指正!
强力推荐!本文学习教程网址https://www.kuangstudy.com/