21.2 giải bài tập java 19 - 21. Hàm và Sử dụng hàm trong Java - java function

Поделиться
HTML-код
  • Опубликовано: 9 янв 2025

Комментарии • 26

  • @HungNgo-pr5uv
    @HungNgo-pr5uv 5 месяцев назад

    Cho e hỏi khi nào nên dùng hàm có return và không có return

    •  5 месяцев назад

      nếu 1 cái hàm, mà sau khi thực hiện, e không cần mang kết quả của nó đi tính toán, hoặc phục vụ các công việc khác thì không cần return
      Ví dụ : 1 cái hàm e chỉ cần tính tổng a +b và in kết quả, thì hàm này không cần return, mà chỉ cần in ra luôn kết quả
      2. Nhưng nếu sau tính tổng, e lại muốn vác tổng này đi làm gì đó, thì e cần return, để có thể gán kết quả này vào 1 biến, rồi vác biến đó đi làm gì thì làm .

  • @longtrinhdev
    @longtrinhdev Год назад +1

    Dựa vào kiến thức a chỉ bảo , e tích hợp thêm được cái nhập vô hạn ạ
    /*
    * Viết chương trình nhập từ bán phím hai số a,b
    * Nhập 1 kí tự +,-,*,/ và thực hiện cái phép toán đó
    */
    package Chuong6;
    import java.util.Scanner;
    public class bai6_01 {
    public static void main(String[] args){
    System.out.print("Nhap hai so a va b: ");
    Scanner n = new Scanner(System.in);
    int a = n.nextInt();
    int b = n.nextInt();
    phep_tinh(a, b);

    }
    public static void phep_tinh(int a, int b) {
    System.out.print("Nhap phep toan: ");
    Scanner Pt = new Scanner(System.in);
    String pt = Pt.nextLine();
    while(true) {
    if (pt.equals("+")) {
    int total = a + b;
    System.out.println("
    Tong cua hai so la: " + total);
    }else if (pt.equals("-")) {
    int hieu = a- b;
    System.out.println("Hieu 2 so la: " + hieu);
    }else if (pt.equals("*")) {
    int muti = a*b;
    System.out.println("Tich hai so: " + muti);
    }else if (pt.equals("/")) {
    if (b == 0) {
    System.out.println("Khong chia duoc cho zero");
    }else {
    double thuong = (double)a /b;
    System.out.println("Thuong hai so: " + thuong);
    }
    }
    System.out.print("Ban co muon tiep tuc khong(Y/N): ");
    String comment = new Scanner(System.in).nextLine();
    if (comment.equals("Y") || comment.equals("y")) {
    System.out.print("
    Vui long nhap phep tinh: ");
    pt = Pt.nextLine();
    }else if(comment.equals("N") || comment.equals("n")){
    break;
    }
    }
    }
    }

  • @anhhaovo1460
    @anhhaovo1460 6 месяцев назад

    bài này nếu em dùng do while , ép cho b lớn hơn 0 ròi mới thực hiện phép tình thì ok hơn không ạ

    • @phule2454
      @phule2454 2 месяца назад

      public static void main(String[] args) {
      Scanner tt = new Scanner(System.in);
      System.out.println("Mời bạn nhập sô a");
      double a = tt.nextDouble();
      System.out.println("Mời bạn nhập sô b");
      double b = tt.nextDouble();
      System.out.println("Mời bạn nhập 1 trong các phép tính (+,-,*,/)");
      String pheptinh = new Scanner(System.in).nextLine();
      while (pheptinh.equals("/") && b==0){
      System.out.println("Mời nhập lại b :");
      b=tt.nextDouble();
      }
      switch (pheptinh){
      case "+":
      cong(a,b);
      break;
      case "-":
      tru(a,b);
      break;
      case "*":
      nhan(a,b);
      break;
      case "/":
      chia(a,b);
      break;
      default:
      System.out.println("nhap gi v thim");
      break;
      }
      }
      public static void cong(double a , double b ){
      double kq = a + b ;
      System.out.println(" a + b = "+kq);
      }
      public static void tru(double a , double b ){
      double kq = a - b ;
      System.out.println(" a - b = "+kq);
      }
      public static void nhan(double a , double b ){
      double kq = a * b ;
      System.out.println(" a * b = "+kq);
      }
      public static void chia(double a , double b ){
      double kq = a / b ;
      System.out.println(" a / b = "+kq);
      }

    • @phule2454
      @phule2454 2 месяца назад

      bạn chung ý tưởng dứ tui nè , tham khảo nhaaa

  • @19hieu86
    @19hieu86 3 месяца назад

    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Moi nhap vao so a");
    double a=sc.nextDouble();
    System.out.println("Moi nhap vao so b");
    double b=sc.nextDouble();
    System.out.println("moi nhap vao dau + - * /");
    char c =sc.next().charAt(0);
    String kq=Match(c, a, b);
    System.out.println("ket qua="+kq);
    }
    public static String Match(char c, double a, double b){
    switch (c) {
    case '+' -> {
    return String.valueOf(a+b);
    }

    case '-' -> {
    return String.valueOf(a-b);
    }

    case '*' -> {
    return String.valueOf(a*b);
    }

    case '/' -> {
    if (b!=0) {
    return String.valueOf(a/b);
    }
    else return"phai nhap b khac 0";
    }

    default -> {
    return "phep toan ko hop le";
    }

    }

  • @longtrinhdev
    @longtrinhdev Год назад

    Anh ơi để function con viết đằng trước hàm chính được k a

  • @ucaipham8413
    @ucaipham8413 Год назад +1

    Còn 1 cách ngắn gọn như thế này nữa
    --------------------------------------------------------------
    import java.util.Scanner;
    // Chường trình nhập vào các phép tính để tính 2 số
    public class b6 {
    public static void main(String[] args) {
    Scanner sc= new Scanner(System.in);
    System.out.println("Nhập a= ");
    int a =new Scanner(System.in).nextInt();
    System.out.println("Nhập b= ");
    int b =new Scanner(System.in).nextInt();
    System.out.println("Nhập dấu (+,-,*,/) để thực hiện phép tính ");
    char c = new Scanner(System.in).next().charAt(0);
    int kq = tinhab(a,b,c);
    System.out.println("Kết quả của phép "+c+" là "+kq);
    }
    public static int tinhab(int a, int b, char c) {
    switch (c){
    case '+': return a+b;
    case '-': return a-b;
    case '*': return a*b;
    case '/': return a/b;
    }
    return 0;
    }
    }

    • @phule2454
      @phule2454 2 месяца назад

      bạn ơi cho mình hỏi trường hợp nào minh sd dấu nháy đôii "_" và dấu nháy '_' sau case vậy bạn

  • @Amuro__1
    @Amuro__1 Год назад

    Em có 1 câu hỏi là có phải trong thực tế thì mình dùng hàm public static void... nhiều hơn hàm public static int sum, double... phải không ạ. Em vẫn chưa rõ lắm về tác dụng của 2 hàm này mà theo em thì hàm public static void... dễ hơn thì phải. Mong anh giải đáp

  • @anhtheman8386
    @anhtheman8386 Год назад +2

    Hi anh, anh dạy hay lắm, em có làm khác anh 1 tí, mong anh rep :D
    import java.util.Scanner;
    public class ontap {
    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    System.out.println("Mời nhập a:");
    double a= sc.nextDouble();
    System.out.println("Mời nhập b:");
    double b= sc.nextDouble();
    System.out.println("Mời nhập vào phép tính (+ ,- ,* ,/)");
    String phepTinh=new Scanner(System.in).nextLine();
    switch (phepTinh){
    case "+" :
    System.out.println("Kết quả phép tính a+b= "+cong(a,b));
    break;
    case "-" :
    System.out.println("Kết quả phép tính a-b= "+tru(a,b));
    break;
    case "*" :
    System.out.println("Kết quả phép tính a*b= "+nhan(a,b));
    break;
    case "/" :
    System.out.println("Kết quả phép tính a/b= "+chia(a,b));
    break;
    default:
    System.out.println("Phím bấm không hợp lệ, mời nhập lại :");
    break;
    }
    }
    public static double cong(double a, double b) {
    return a + b;
    }
    public static double tru(double a, double b) {
    return a - b;
    }
    public static double nhan(double a, double b) {
    return a * b;
    }
    public static double chia(double a, double b) {
    while (b==0){
    System.out.println("Mời nhập lai b, b khác 0");
    b=new Scanner(System.in).nextDouble();
    }
    return a / b;
    }
    }

  • @thanhphatnguyen377
    @thanhphatnguyen377 2 месяца назад

    import java.util.Scanner;
    public class bai21_bt {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Moi nhap vao so a: ");
    int a = sc.nextInt();
    System.out.println("Moi nhap vao so b: ");
    int b = sc.nextInt();
    System.out.println("Moi nhap vao cac phep tinh + - * /");
    Scanner scString = new Scanner(System.in);
    String dau = scString.nextLine();
    int kq = 0;
    if(dau.equals("+")){
    kq = a + b;
    System.out.println("Ket qua: " + kq);
    }else if (dau.equals("-")) {
    kq = a - b;
    System.out.println("Ket qua: " +kq);
    }else if (dau.equals("*")) {
    kq = a*b;
    System.out.println("Ket qua: " +kq);
    }else{
    if(b == 0){
    System.out.println("Khong chia duoc cho 0!");
    }else{
    kq=a/b;
    System.out.println("Ket qua: "+kq);
    }
    }
    }
    }

  • @ToanHa-eq4dc
    @ToanHa-eq4dc 10 месяцев назад +1

    Cách giải của Thầy hay quá ạ, giúp hiểu sâu hơn về hàm. Em thì em làm theo cách gần giống với giải phương trình bậc 2, code gọn hơn ạ. Nhân tiện thầy cho em hỏi là trong phần định nghĩa hàm, muốn dùng try, catch thì làm thế nào ạ? em có làm thử nhưng chưa ra ạ, em làm thì chương trình vẫn chạy nhưng khi chia cho 0 thì báo là Infinity.
    import java.util.Scanner;
    public class lesson21_exercise {
    public static void main(String[] args) {
    System.out.println("Nhap vao so a: ");
    double a=new Scanner(System.in).nextDouble();
    System.out.println("Nhap vao so b: ");
    double b=new Scanner(System.in).nextDouble();
    System.out.println("Nhap vao phep toan +-*/: ");
    String pheptoan=new Scanner(System.in).nextLine();
    String kq=ab(a, b,pheptoan);
    System.out.println(kq);
    }
    public static String ab(double a, double b, String pheptoan) {
    if (pheptoan.equals("+"))
    return "Cong: "+ (a+b);
    else if (pheptoan.equals("-"))
    return "Tru: "+ (a-b);
    else if (pheptoan.equals("*"))
    return "Nhan: "+ (a*b);
    else if (pheptoan.equals("/")) {
    try {
    double c=a/b;
    System.out.println(c);
    return "Chia: "+ c;
    }
    catch (Exception ex) {
    return "Khong chia duoc cho 0";
    }
    }
    else {
    return "Nhap lai phep toan +-*/: ";
    }
    }
    }

  • @bik00bik
    @bik00bik Год назад +1

    có 1 cách nữa để ko lỗi nhập từ bàn phím đó là:
    System.out.println("mời chọn phép tính: + - * /");
    sc.nextLine();
    String phepTinh = sc.nextLine();

  • @dunghuu7048
    @dunghuu7048 Год назад

    anh ơi, em phát triển thêm phần "bạn có muốn thoát chương trình không", ban đầu code chạy đúng theo yêu cầu. Mà lúc sau thì khi hỏi "bạn có muốn thoát chương trình không" em bấm n hoặc 1 chữ nào khác với "y và Y" nó vẫn tự động out chương trình ạ. Mong anh giải đáp bug của em ạ. Em cảm ơn anh!
    import java.util.Scanner;
    public class b21_code_baitap19 {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    while (true) {
    System.out.println("Nhập a: ");
    double a = sc.nextDouble();
    System.out.println("Nhập b: ");
    double b = sc.nextDouble();
    System.out.println("Nhập phép tính (+,-,*,/): ");
    String choice = new Scanner(System.in).nextLine();
    double kQua = math(a, b, choice);
    System.out.println("Kết quả: " + kQua);
    System.out.println("Bạn có muốn thoát chương trình không? (y/n)?");
    String traLoi = new Scanner(System.in).nextLine();
    if (traLoi.equals("y") || traLoi.equals("Y")) ;
    break;
    }
    }
    public static double math(double a, double b, String choice){
    switch (choice){
    case "+":
    return a+b;
    case "-":
    return a-b;
    case "*":
    return a*b;
    case "/":
    if (b!=0){
    return a/b;
    }
    else System.out.println("Math Error");
    default:
    return 0;
    }
    }
    }

    •  Год назад +1

      Hi e, a chưa test nhưng a thấy : if (traLoi.equals("y") || traLoi.equals("Y")) ; dòng này e thừa ; thì phải. break lúc này không nằm trong if . E kiểm tra thêm nhé

    • @dunghuu7048
      @dunghuu7048 Год назад +1

      @ Dạ em debug thành công rồi ạ. Em cảm ơn anh

  • @tuhocwebsite
    @tuhocwebsite Год назад +1

    💯❤

  • @hanuss9042
    @hanuss9042 Год назад +1

    import java.util.Scanner;
    public class bai21_19 {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    Scanner sc1 = new Scanner(System.in);
    System.out.println("Moi nhap so a:");
    double a= sc.nextDouble();
    System.out.println("Moi nhap so b:");
    double b= sc.nextDouble();
    System.out.println("Moi nhap phep tinh (+,-,*,/):");
    String pt = sc1.nextLine();
    PhepTinh(pt,a,b);
    }
    public static void PhepTinh (String ch,double a,double b){
    if(ch.equals("+")){
    System.out.println("Ket qua = "+(a+b));
    }
    else if(ch.equals("-")){
    System.out.println("Ket qua = "+(a-b));
    }
    else if(ch.equals("*")){
    System.out.println("Ket qua = "+(a*b));
    }
    else if(ch.equals("/")){
    if (b==0)
    System.out.println("Khong chia cho 0");
    else
    System.out.println("Ket qua = "+(a/b));
    }
    else
    System.out.println("Chuong trinh khong co phep tinh nay");
    }
    }
    em làm như v có được không ạ