是否可以在if语句中创建switch语句?

时间:2018-01-05 15:03:37

标签: java

我在java中制作了一个3D骰子小程序(我只是用g.drawLine绘制了一些行),但我对骰子的眼睛有问题。每一方都必须有1到6之间的值。

我有三面。我用他们自己的坐标分别制作了这些眼睛,但现在这些眼睛的眼睛超过6只,因为我已经把它放在一个声明中。

我想使用case / switch语句来解决这个问题。但是我试图将它放在我的代码中,没有任何成功。所以有人可以帮我这个吗?

这是我的代码,它是荷兰语,抱歉:

package Dobbelsteen;

import java.awt.*;                        // De eerste drie regels geven aan dat er gebruik moet worden gemaakt van
import java.applet.*;                    // de vooraf gedefineerde klassen uit de packages java.awt, java.applet
import java.awt.event.*;                // en java.awt.event


public class Dobbelsteen extends Applet implements ActionListener {             
   Button rolknop;       
   Button instructieknop;                                                  
   TextField tekst;                                                                  String vak="Druk op de knop'ROL' om te dobbelen";                        




   public void init(){                                          
       rolknop=new Button("ROL");                              
       rolknop.addActionListener(this);                      
       rolknop.setFont(new Font("Verdana", Font.PLAIN, 12));                     
       instructieknop=new Button("INSTRUCTIE");
       instructieknop.addActionListener(this);
       tekst=new TextField("Gooi nog een keer",12);        
       add(rolknop);                                    
       add(tekst);                                     
       add(instructieknop); 
       setBackground(new Color(200,200,250));          




   }

   int werpenDobbelsteen(){                                             // Hier wordt een integer (geheel getal) met de naam 'worp' aangemaakt
       double i;                                                       // Hier wordt een double (getal met komma) met de naam 't' aangemaakt
       int totaalbolletjes;                                           // De integer 'aantalOgen' wordt aangemaakt
       i=(int)(Math.random()*6 ) + 1;                                // Math.random() is een manier om een willekeurig getal te laten kiezen door het programma                                 
       totaalbolletjes=(int)i;                                      // aantalOgen wordt omgezet naar de 't', wat een integer wordt
       return totaalbolletjes;                                     // Nu wordt er teruggegaan naar aantalOgen, die weer op nul staat, doordat 't' het getal heeft overgenomen
   }

   public void paint(Graphics g){                               // Dit is de methode om iets te tekenen.
       g.drawString (vak,695,80);
       g.drawString ("Druk 2x op de knop 'INSTRUCTIE' voor uitleg",677,50);
       tekst.setText("");
       tekst.requestFocus();




       if(werpenDobbelsteen()==1){   // Dobbelsteen 1                                          // Als worp() 1 is, dan moeten de onderstaande regels worden uitgevoerd
           g.setColor(new Color(234, 234, 42));                                             // Hier wordt een kleur gegeven. In dit geval rood
           g.fillRoundRect(50,275,100,100,20,20);                                            // Er wordt een vierkant met ronde hoeken getekend en gevuld. De linkerbovenhoek ligt om positie (50,50). De rechthoek is 100 bij 100 px groot en de hoeken worden afgerond. Dit vierkant wordt rood.
           g.setColor(Color.white);                                                         // Hier wordt de kleur wit gegeven
           g.fillOval(97,320,10,10);                                                         // Er wordt een rondje gemaakt op positie (95,95) met een diameter van 10px
           g.drawRect(50,275,100,100);
           g.drawLine(50,275,130,230);
           g.drawLine(150,275,210,240);
           g.drawLine(130,230,210,240);
           g.drawLine(210,240,210,340);
           g.drawLine(150,375,210,340);
           g.fillOval(160,290,10,10);                                                           //zijkant 2
           g.fillOval(195,320,10,10); 
           g.fillOval(131,238,10,10);                                                         //bovenzijde 4
           g.fillOval(175,243,10,10);
           g.fillOval(102,257,10,10); 
           g.fillOval(148,259,10,10);

       }

       if(werpenDobbelsteen()==2){    // dobbelsteen 2
           g.setColor(Color.orange);
           g.fillRoundRect(50,275,100,100,20,20);
           g.setColor(Color.white);
           g.fillOval(80,300,10,10);
           g.fillOval(120,350,10,10);
           g.drawRect(50,275,100,100);
           g.drawLine(50,275,130,230);
           g.drawLine(150,275,210,240);
           g.drawLine(130,230,210,240);
           g.drawLine(210,240,210,340);
           g.drawLine(150,375,210,340);
           g.fillOval(160,290,10,10);                                                                       //zijkant 3
           g.fillOval(195,320,10,10); 
           g.fillOval(180,305,10,10);
           g.fillOval(131,235,10,10);                                                                     //bovenzijde 6
           g.fillOval(175,240,10,10);
           g.fillOval(102,257,10,10); 
           g.fillOval(148,259,10,10);
           g.fillOval(119,245,10,10); 
           g.fillOval(163,248,10,10);
       }

       if(werpenDobbelsteen()==3){    // dobeelsteen 3
           g.setColor(new Color(234,234,42));
           g.fillRoundRect(50,275,100,100,20,20);
           g.setColor(Color.white);
           g.fillOval(80,300,10,10);
           g.fillOval(97,320,10,10);
           g.fillOval(120,350,10,10);
           g.drawRect(50,275,100,100);
           g.drawLine(50,275,130,230);
           g.drawLine(150,275,210,240);
           g.drawLine(130,230,210,240);
           g.drawLine(210,240,210,340);
           g.drawLine(150,375,210,340);
           g.fillOval(160,290,10,10);                                                                        //zijkant 5
           g.fillOval(195,320,10,10); 
           g.fillOval(180,303,10,10);
           g.fillOval(195,270,10,10); 
           g.fillOval(160,337,10,10);
           g.fillOval(130,245,10,10);                                                                                 //bovenkant 1    

       }



       if(werpenDobbelsteen()==4){  // dobbelsteen 4
           g.setColor(Color.orange);
           g.fillRoundRect(50,275,100,100,20,20);
           g.setColor(Color.white);
           g.fillOval(80,300,10,10);
           g.fillOval(120,300,10,10);
           g.fillOval(80,350,10,10);
           g.fillOval(120,350,10,10);
           g.drawRect(50,275,100,100);
           g.drawLine(50,275,130,230);
           g.drawLine(150,275,210,240);
           g.drawLine(130,230,210,240);
           g.drawLine(210,240,210,340);
           g.drawLine(150,375,210,340);
           g.fillOval(180,305,10,10);                                                                        //zijkant 1
           g.fillOval(131,238,10,10);                                                                       //bovenzijde 2
           g.fillOval(148,259,10,10);



       }
       if(werpenDobbelsteen()==5){  // dobbelsteen 5
           g.setColor(new Color(234,234,42));
           g.fillRoundRect(50,275,100,100,20,20);
           g.setColor(Color.white);
           g.fillOval(80,300,10,10);
           g.fillOval(120,300,10,10);
           g.fillOval(97,320,10,10);
           g.fillOval(80,350,10,10);
           g.fillOval(120,350,10,10);
           g.drawRect(50,275,100,100);
           g.drawLine(50,275,130,230);
           g.drawLine(150,275,210,240);
           g.drawLine(130,230,210,240);
           g.drawLine(210,240,210,340);
           g.drawLine(150,375,210,340);
           g.fillOval(160,290,10,10);                                                                                            //zijkant 6
           g.fillOval(195,331,10,10); 
           g.fillOval(195,305,10,10);
           g.fillOval(195,265,10,10); 
           g.fillOval(160,320,10,10);
           g.fillOval(160,350,10,10);
           g.fillOval(131,238,10,10);                                                                                            //bovenzijde 4
           g.fillOval(148,259,10,10);
           g.fillOval(172,240,10,10);
           g.fillOval(100,261,10,10);


       }
       if(werpenDobbelsteen()==6){  // dobbelsteen 6
           g.setColor(Color.orange);
           g.fillRoundRect(50,275,100,100,20,20);          
           g.setColor(Color.white);
           g.fillOval(80,297,10,10);
           g.fillOval(120,297,10,10);
           g.fillOval(80,325,10,10);
           g.fillOval(120,325,10,10);
           g.fillOval(80,350,10,10);
           g.fillOval(120,350,10,10);
           g.fillOval(220,300,10,10);
           g.drawRect(50,275,100,100);
           g.drawLine(50,275,130,230);
           g.drawLine(150,275,210,240);
           g.drawLine(130,230,210,240);
           g.drawLine(210,229,210,340);
           g.drawLine(150,375,210,340);
           g.fillOval(160,290,10,10);                                                                                                       //zijkant 4
           g.fillOval(195,320,10,10);      
           g.fillOval(195,270,10,10); 
           g.fillOval(160,337,10,10);
           g.fillOval(128,233,10,10);                                                                                       //bovenzijde 5
           g.fillOval(175,243,10,10);
           g.fillOval(90,255,10,10); 
           g.fillOval(148,259,10,10);


       }


   }                                // De methode paint wordt hier afgesloten.

   public void actionPerformed(ActionEvent e){                
       if(e.getSource()==rolknop){                
           werpenDobbelsteen();                                      
           repaint();                            
       } 

       if (e.getSource()==instructieknop) {
           tekst.setText("    Klik op de knop ROL om oneindig dobbelen met de dobbelsteen.");
           tekst.setLocation(200, 55);
           tekst.setSize(400,100);

       }
   }                                // Accolade die de methode actionPerformed() afsluit
}                                    

1 个答案:

答案 0 :(得分:1)

这里的问题是在if语句中调用werpenDobbelsteen()函数。每次调用都会生成新的随机数。你应该在paint方法中只调用一次这个函数。

public void paint(Graphics g){       
   g.drawString (vak,695,80);
   g.drawString ("Druk 2x op de knop 'INSTRUCTIE' voor uitleg",677,50);
   tekst.setText("");
   tekst.requestFocus();

  int roll = werpenDobbelsteen();
  if(roll==1){  // do something
  }
  if(roll==2){// do something else
  }

是的,您可以像

一样使用switch语句
switch(werpenDobbelsteen()){
        case 1:
            // do something
            break;
        case 2:
            // do something else
            break;
        default:
            // do something if it was not 1 or 2
    }