public class Test { static int count =0; int i=0; public void changeCount() { while (i< 5){ j++; count++;} public static void main(String[]args) { Test check1=new Test(); Test check2 = new Test(); check1.changeCount(); check2.changeCount(); System.out. println(check1.count+":"+ check2.count); }}
时间: 2024-03-03 16:46:53 浏览: 137
这段代码存在语法错误,其中 j++; count++;应该改为 i++; count++;同时,changeCount()方法缺少右括号。修正后的代码如下:
```
public class Test {
static int count = 0;
int i = 0;
public void changeCount() {
while (i < 5) {
i++;
count++;
}
}
public static void main(String[] args) {
Test check1 = new Test();
Test check2 = new Test();
check1.changeCount();
check2.changeCount();
System.out.println(check1.count + ":" + check2.count);
}
}
```
此代码的输出结果为:"10:10",因为静态变量count是所有实例共享的,而i是每个实例独有的。在changeCount()方法中,每个实例都会使自己的i增加到5,然后使count增加5,因此两个实例的count都增加了10。
相关问题
请阅读下面的程序 public class Test { public static void main(String args) { int i = 0; int count = 0; do { if (!(i + "").contains("4")) { count++; } i++; } while (i < 500); System.out.println(count); } } 下列选项中,哪一个是程序运行后count的值( ) A、322 B、323 C、324 D、325
该程序的作用是找出从 0 到 499 中不包含数字 4 的数的个数,最终输出计数器 count 的值。在循环中,只有满足数字不包含 4 的条件时,计数器 count 才会自增。因此,我们只需要统计从 0 到 499 中包含数字 4 的数的个数即可。这个数字的个数可以通过数学方法得出,即在 0 到 499 中,个位数出现数字 4 的次数为 50 次,十位和百位数分别出现数字 4 的次数都是 5 次,因此总共出现数字 4 的次数为 $50 \times 1 + 5 \times 10 + 5 \times 10 = 100$ 次,不包含数字 4 的数的个数就是 $500 - 100 = 400$ 个。因此,程序运行后 count 的值应该是 400,选项 D 符合要求。
import java.util.Random; public class Test12 { public static void main(String[] args) { /*需求:一个大V直播抽奖,奖品是现金红包,分别有{2,588,888,1000,10000}五个奖金。 请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。 打印效果如下:(随机顺序,不一定是下面的顺序) 888元的奖金被抽出 588元的奖金被抽出 10000元的奖金被抽出 1000元的奖金被抽出 2元的奖金被抽出 */ int[] raffle={2,588,888,1000,10000}; int[] temp=new int[raffle.length]; getRaffle(raffle,temp); } public static void getRaffle(int[] raffle, int[] temp){ Random r = new Random(); int count=0; while(count<=5) { int ran=r.nextInt(raffle.length); if(temp[ran]==raffle[ran]){ continue; } else { temp[ran]=raffle[ran]; System.out.println(raffle[ran]+"元的奖金被抽出"); count++; } } } }
这是一个Java代码模拟抽奖过程,实现了大V直播抽奖的功能。代码中定义了一个整型数组`raffle`,包含了五个不同金额的奖金;以及一个整型数组`temp`,用于记录已经被抽中的奖金。`getRaffle`方法通过随机数来实现抽奖,并在控制台输出每个奖项,保证了奖项的顺序是随机的且不重复的。
具体实现过程如下:
```java
import java.util.Random;
public class Test12 {
public static void main(String[] args) {
int[] raffle = {2, 588, 888, 1000, 10000};
int[] temp = new int[raffle.length];
getRaffle(raffle, temp);
}
public static void getRaffle(int[] raffle, int[] temp) {
Random r = new Random();
int count = 0;
while (count < 5) {
int ran = r.nextInt(raffle.length);
if (temp[ran] == raffle[ran]) {
continue;
} else {
temp[ran] = raffle[ran];
System.out.println(raffle[ran] + "元的奖金被抽出");
count++;
}
}
}
}
```
在这个实现中,我们通过一个while循环来进行抽奖的过程,每次循环从`raffle`数组中随机选取一个下标,如果这个下标对应的奖金已经被抽中了,就重新随机一个下标;如果没有被抽中,则将这个奖金放入`temp`数组中,并在控制台输出该奖项。直到抽中了五个奖项为止。
阅读全文