Toggle Theme Editor
Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Charcoal

Thắc mắc về phương thức trong java

Discussion in 'Xây dựng các ứng dụng Java khác, các vấn đề khác' started by vanthanh1411, 3/2/18.

  1. vanthanh1411

    vanthanh1411 New Member

    Mọi người cho mình hỏi làm cách nào để chương trình dưới ra kết quả như mình muốn ạ.
    upload_2018-2-3_11-7-21.png
     
  2. JackV

    JackV Administrator Staff Member

    bạn post code vào tag [ php ] để mọi người chép chạy thử nhé. Điều nữa là cái
    của bạn như thế nào? code này đang như thế nào?
     
    ComNguoi likes this.
  3. Vũ Thiên

    Vũ Thiên Member

    2 chỗ sai nhé bạn ép kiểu
    (float)Math.min(a,b);

    (int)Math.round(b);
    phải ép kiểu nó
     
    D.A.N_3002 likes this.
  4. vanthanh1411

    vanthanh1411 New Member

    kết quả mình ra nó cứ bằng 1. Đáng lẽ nó phải ra a lũy thừa b với làm tròn b chứ ạ?
    tag php là sao bạn?
    mình thử rồi kq vẫn vậy bạn.
     
  5. Vũ Thiên

    Vũ Thiên Member

    để thử float min ,lth,r trên public static void action giống float a và b thử nhé bạn
    còn tag PHP là z nek
    PHP:
    ...
     
  6. D.A.N_3002

    D.A.N_3002 Member

    Bạn có thể print luôn kết quả ra kiểu này mà
    Code:
    System.out.println(Math.pow(a, b));
    Làm như vậy thì không cần biến ép kiểu lằng nhằng, mà kết quả vẫn đúng(Đã test) :)
    dfgd.PNG
     
    vanthanh1411 likes this.
  7. vanthanh1411

    vanthanh1411 New Member


    Xin lỗi nhưng mình vẫn chưa hiểu ý bạn lắm.
    PHP:
    import java.util.Scanner;

    public class 
    Bai1 {
        public static 
    void input(float afloat bScanner scanner){
            
    System.out.print("Nhập a: ");
            
    a=scanner.nextFloat();
            
    b=(float) Math.random()*15+5;
            
    System.out.println("Starting random!");
            
    System.out.print("You got a number: "+b);
            
    System.out.println();
        }
        public static 
    void action(float afloat b){
            
    float minMath.min(a,b);
            
    System.out.println("Min: "+min);
            
    float lth= (float) Math.pow(a,b);
            
    System.out.println("a lũy thừa b: "+lth);
            
    int r=Math.round(b);
            
    System.out.println("Làm tròn b: "+r);
        }
        public static 
    void main(String[]args){
            
    Scanner scanner =new Scanner(System.in);
            
    float a 0;
            
    float b 0;
            
    input(a,b,scanner);
            
    action(a,b);
        }
     
    D.A.N_3002 likes this.
  8. vanthanh1411

    vanthanh1411 New Member

    ý của bạn là như vầy hay sao @@
    PHP:

    import java
    .util.Scanner;

    public class 
    NewClass {
        public static 
    void main(String[]args){
            
    Scanner scanner=new Scanner(System.in);
            
    System.out.print("Nhập a: ");
            
    float a=scanner.nextFloat();
            
    float b=(float) Math.random()*15+5;
            
    System.out.println("Starting random!");
            
    System.out.print("You got a number: "+b);
            
    System.out.println();
            
    float minMath.min(a,b);
            
    System.out.println("Min: "+min);
            
    System.out.println("a lũy thừa b: "+Math.pow(a,b));
            
    int r=Math.round(b);
            
    System.out.println("Làm tròn b: "+r);
        }
    }
    [\
    php]
     
  9. vanthanh1411

    vanthanh1411 New Member

    Mình có thử in ra "a" ở phương thức action nhưng nó in ra "a" bằng 0.
    Mình không biết có phải do mình khai báo biến ở main a với b bằng 0 không nữa. Nhưng không khai báo thì bị báo lỗi T_T
     
    D.A.N_3002 likes this.
  10. D.A.N_3002

    D.A.N_3002 Member

    Mình hiểu vấn đề của bạn rồi, tại hàm input() không thay đổi giá trị của a và b vì nó dc tạo ở hàm main().Theo mình có 2 cách xử lý
    1) Đẩy toàn bộ code vào hàm main, không chia thành từng void nữa (Như cái bạn vừa làm)
    2) Nếu muốn làm kiểu step by step thì phải tạo float a và b ở ngoài hàm main() như VD ở dưới
    Code:
    import java.util.Scanner;
    
    public class Bai1
    {
        public static  float a = 0;
        public static  float b = 0;
        
        public static void input(float a, float b, Scanner scanner)
        {
            System.out.print("Nhập a: ");
            a=scanner.nextFloat();
            b=(float) Math.random()*15+5;
            System.out.println("Starting random!");
            System.out.print("You got a number: "+b);
            System.out.println();
        }
        public static void action(float a, float b)
        {
            System.out.println("Min: "+ Math.min(a, b));
            System.out.println("a lũy thừa b: " + Math.pow(a, b));
            System.out.println("Làm tròn b: "+Math.round(b));
        }
        public static void main(String[]args)
        {
            Scanner scanner =new Scanner(System.in);
            input(a,b,scanner);
            action(a,b);
    
        }
    }
     
    vanthanh1411 likes this.
  11. vanthanh1411

    vanthanh1411 New Member

    Xin lỗi nhưng mình chạy chươn trình theo cách 2 của bạn vẫn không được. @@
    Còn cách đẩy vào main mình làm được rồi. Chủ yếu mình đang tập tách ra nhiều phương thức T_T
     
    D.A.N_3002 likes this.
  12. D.A.N_3002

    D.A.N_3002 Member

    Bạn đã thử copy code của mình ở trên và chạy chưa ??
     
  13. vanthanh1411

    vanthanh1411 New Member

     

    Attached Files:

  14. vanthanh1411

    vanthanh1411 New Member

    vẫn = 1 bạn T_T
     
  15. D.A.N_3002

    D.A.N_3002 Member

    Sr bạn, code nãy có lỗi chút :( Bạn thử lại cái này xem nhé
    Code:
    import java.util.Scanner;
    
    public class Bai1
    {
        public static  float a = 0;
        public static  float b = 0;
        
        public static void input(Scanner scanner)
        {
            System.out.print("Nhập a: ");
            a=scanner.nextFloat();
            b=(float) Math.random()*15+5;
            System.out.println("Starting random!");
            System.out.print("You got a number: "+b);
            System.out.println();
        }
        public static void action()
        {
            System.out.println("Min: "+ Math.min(a, b));
            System.out.println("a lũy thừa b: " + Math.pow(a, b));
            System.out.println("Làm tròn b: "+Math.round(b));
        }
        public static void main(String[]args)
        {
            Scanner scanner =new Scanner(System.in);
            input(scanner);
            action();
    
        }
    }
     
    vanthanh1411 likes this.
  16. vanthanh1411

    vanthanh1411 New Member

    Tks bạn. Mình cũng hiểu sơ sơ rồi. Bài này hành mình mấy ngày T_T
     
    D.A.N_3002 likes this.

Chia sẻ trang này

Loading...