qcjj的蝴蝶结1
方法:
// 导入java.util.Scanner类
import java.util.Scanner;public class Main {public static void main(String[] args) {// 创建Scanner对象,用于从标准输入读取数据Scanner scan = new Scanner(System.in);// 读取整数t代表测试用例的数量int t = scan.nextInt(); // 开始循环t个测试用例while (t-- != 0) {// 读取整数n,代表本次测试用例数字的数量int n = scan.nextInt();// 创建一个长度为n的整型数组a,用于存储本次测试用例读入的数字int[] a = new int[n];// 定义并初始化一个变量ans,表示本次测试用例中奇数的个数int ans = 0;// 循环读取n个数字,判断它们是否为奇数for (int i = 0; i < n; i++) { // 读取第i个数字,并将其存入数组a的第i个元素a[i] = scan.nextInt();// 如果第i个数字是奇数,则将ans加1if (a[i] % 2 == 1) {ans++;}}// 打印本次测试用例中奇数的个数System.out.println(ans);}// 程序运行结束}
}
问题:
while(t-- != 0){ } 和 while(t != 0)有什么区别?
代码演示:
public class Main {public static void main(String[] args) {int t = 3;System.out.println("Using while(t-- != 0):");while(t-- != 0) {System.out.println("t = " + t);}System.out.println("Using while(t != 0):");t = 3;while (t != 0) {System.out.println("t = " + t);t--;}}
}// 输出结果如下:Using while(t-- != 0):t = 2t = 1t = 0Using while(t != 0):t = 3t = 2t = 1// 说明: 第一段代码使用了后缀自减操作符 --,循环体内每执行一次,就会对循环条件中的 t 进行一次自减操作。
// 因此,在 t 的值依次为 3、2、1 时,循环体内都能正确地输出。
// 而第二段代码在循环体内手动执行了 t-- 操作,将 t 的值从 3 减小到 0,循环成功结束。
题目来源