这是我学习Java的第一个月,也是我在这里的第一个问题,请注意新手的错误或者我忽略了一些明显的问题。
我有作业,程序首先要求用户给出一个数字。然后程序将从O(大),o(小)和0(零)的选择中随机打印出该数量的字符。所以数字和字母。
! 所以我的主要问题是如何使用Java执行特定字符的随机打印? !
这是我尝试做的事情,但是自从第一批评论员提出要求以来,我决定发布它;
public class ASCIIFISH{
public static void main(String[] args) {
System.out.println("Hello! How many bubbles is coming from the fish? :-)");
int kuplat = In.readInt();
System.out.println( (int) (Math.random(0) * 10) + ">}}}`>");
}
}
编辑; 好的,所以我到了这一点;
public class ASCIIFISH{
public static void main(String[] args) {
System.out.println("Moikkelismoi! Kuinka monta kuplaa toivoisit kalan liikehdinnästä syntyvän? :-))");
int kuplat = In.readInt();
for (int i=0; i<kuplat; i++){
System.out.print( (int) (Math.random() * 3) );
}
switch(){
}
System.out.println(">}}}`>");
}
}
现在程序随机打印出用户的0s,1s和2s数量,我所需要的只是将1s和2s改为o和o和o。有什么想法吗?
好的,这就行了;
public class ASCIIFISH{
public static void main(String[] args) {
// Luetaan käyttäjältä kuplien lukumäärä.
System.out.println("Moikkelismoi! Kuinka monta kuplaa toivoisit kalan liikehdinnästä syntyvän? :-))");
int kuplat = In.readInt();
// Luodaan laskuri joka vertaa itseään käyttäjän antamaan kuplien lukumäärään...
// ...ja muuttuja joka arpoo lukuja väliltä 0-2.
for (int i=0; i<kuplat; i++){
int valinta = ( (int)(Math.random() * 3) );
// Muutetaan tulostuvat (0,1,2) luvut 0,o,O -merkeiksi sekä tulostetaan ne.
if (valinta == 0){
System.out.print("0");
}
else if(valinta == 1){
System.out.print("o");
}
else if(valinta == 2){
System.out.print("O");
}
}
//Tulostetaan itse kala (mahdollisten) kuplien perään.
System.out.println(">}}}`>");
}
}
答案 0 :(得分:0)
你可以生成一个随机数1-K,其中K是可能性的数量(3,如果我理解正确的话),然后使用这个数字和switch
/ case
来选择哪个字符根据号码打印。
答案 1 :(得分:0)
有更好的方法,但是。
double d = Math.random();
if(d>0.5){
System.out.println("a");
} else{
System.out.println("b");
}
那将随机打印出a或b。
答案 2 :(得分:0)
您可以将所需的字符放入数组
String[] data = new String[]{"o", "0", "O"};
然后根据用户输入在数组上运行一个循环,并每次打印一个随机的:
for (int i = 0; i < kuplat; i++) {
Random r = new Random();
int num = r.nextInt(data.length);
System.out.println(data[num]);
}