User-Defined Exception trong Python
Chúng ta đã cùng tìm hiểu về Exception ở bài Lỗi (error) và ngoại lệ (exception)...
Kết quả sẽ mở trong tab mới, giới hạn trong website này.
Truy cập nhanh
Tìm kiếm gần đây
1. Nhập xuất mảng một chiều Sử dụng vòng lặp for để nhập các phần tử của mảng từ bàn phím. Sau đó, duyệt mảng để xuất các phần tử của mảng ra màn hình. Kết quả Khởi tạo mảng với giá trị ngẫu nhiên Kết quả Lưu ý: Hàm random(); phát sinh ngẫu nhiên […]
Sử dụng vòng lặp for để nhập các phần tử của mảng từ bàn phím. Sau đó, duyệt mảng để xuất các phần tử của mảng ra màn hình.
import java.util.Scanner;
class Main {
public static void main(String[] args) {
double[] myList = new double[5];
Scanner input = new Scanner(System.in);
System.out.println("Nhap " + myList.length + " cua mang:");
for (int i = 0; i < myList.length; i++) {
myList[i] = input.nextDouble();
}
System.out.print("Cac phan tu trong mang: ");
for (int i = 0; i < myList.length; i++) {
System.out.print(myList[i] + " ");
}
}
}
Nhap 5 cua mang:
3.2
5.6
8.7
9.9
2.1
Cac phan tu trong mang: 3.2 5.6 8.7 9.9 2.1
class Main {
public static void main(String[] args) {
double[] myList = new double[5];
for (int i = 0; i < myList.length; i++) {
myList[i] = Math.random() * 100;
}
System.out.print("Cac phan tu trong mang: ");
for (int i = 0; i < myList.length; i++) {
System.out.print(myList[i] + " ");
}
}
}
Cac phan tu trong mang: 49.91437233322772 42.229356830793805 44.54614164159645 23.346046110041318 37.47573911419114Lưu ý: Hàm random(); phát sinh ngẫu nhiên giá trị từ 0.0 đến 1.0.
Sử dụng vòng lặp for duyệt qua từng phần tử trong mảng rồi cộng dồn các phần tử đó.
class Main {
public static void main(String[] args) {
double[] myList = {2.3, 5.0, 7.1, 5.5, 9.2};
double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList[i];
}
System.out.print("Tong cac phan tu trong mang = " + total);
}
}
Tong cac phan tu trong mang = 29.099999999999998Gán phần tử đầu tiên là phần tử min. So sánh phần tử min với từng phần tử trong mảng. Nếu một phần tử trong mảng nhỏ hơn min thì gán min bằng phần tử đó.
class Main {
public static void main(String[] args) {
double[] myList = {2.3, 5.0, 7.1, 5.5, 9.2};
double min = myList[0];
int indexMin = 0;
for (int i = 0; i < myList.length; i++) {
if (myList[i] < min){
min = myList[i];
indexMin = i;
}
}
System.out.println("Phan tu min trong mang = " + min);
System.out.println("Chi so phan tu min trong mang = " + indexMin);
}
}
Phan tu min trong mang = 2.3
Chi so phan tu min trong mang = 0
Gán phần tử đầu tiên là phần tử max. So sánh phần tử max với từng phần tử trong mảng. Nếu một phần tử trong mảng lớn hơn max thì gán max bằng phần tử đó.
class Main {
public static void main(String[] args) {
double[] myList = {2.3, 5.0, 7.1, 5.5, 9.2};
double max = myList[0];
int indexMax = 0;
for (int i = 0; i < myList.length; i++) {
if (myList[i] > max){
max = myList[i];
indexMax = i;
}
}
System.out.println("Phan tu max trong mang = " + max);
System.out.println("Chi so phan tu min trong mang = " + indexMax);
}
}
Phan tu max trong mang = 9.2
Chi so phan tu min trong mang = 4
Các bạn có thể đọc lại bài Các cấu trúc điều khiển vòng lặp for và for-each trong Java để nắm được cú pháp và cách sử dụng for-each. Bên dưới là ví dụ duyệt mảng với for-each.
class Main {
public static void main(String[] args) {
double[] myList = {2.3, 5.0, 7.1, 5.5, 9.2};
double sum = 0;
double average = 0;
//tính tổng các phần tử trong mảng
for (double number: myList) {
sum += number;
}
//lấy kích thước của mảng
int arrayLength = myList.length;
//tính trung bình cộng các phần tử trong mảng
average = sum/arrayLength;
System.out.println("Tong = " + sum);
System.out.println("Trung binh = " + average);
}
}
Tong = 29.099999999999998
Trung binh = 5.819999999999999
Một phương thức có thể nhận mảng làm tham số. Khi truyền mảng (array) cho phương thức thì là truyền tham chiếu. Bất kỳ sự thay đổi nào xuất hiện trong phương thức sẽ làm thay đổi mảng được truyền vào. Các bạn có thể đọc lại bài Truyền tham trị và tham chiếu cho phương thức trong Java để hiểu rõ về truyền tham chiếu trong Java.
class Main {
public static void swapFirstTwoInArray(int[] array) {
int temp = array[0];
array[0] = array[1];
array[1] = temp;
}
public static void main(String[] args) {
int[] arr = {1, 2};
System.out.println("Mang truoc khi goi ham swap");
System.out.println("array la {" + arr[0] + ", " + arr[1] + "}");
swapFirstTwoInArray(arr);
System.out.println("Mang sau khi goi ham swap");
System.out.println("array la {" + arr[0] + ", " + arr[1] + "}");
}
}
Mang truoc khi goi ham swap
array la {1, 2}
Mang sau khi goi ham swap
array la {2, 1}
Rõ ràng, khi truyền mảng arr vào hàm swapFirstTwoInArray() thì mảng đã thay đổi.
Kết quả trả về của một phương thức có thể là một mảng.
class Main {
public static int[] reverse(int[] list) {
int[] result = new int[list.length];
for (int i=0, j=result.length-1; i<list.length; i++,j--) {
result[j] = list[i];
}
return result;
}
public static void main(String[] args) {
int[] list1 = {1, 2, 3, 4, 5, 6};
int[] list2 = reverse(list1);
System.out.print("Mang list2: ");
for(int item:list2){
System.out.print(item + " ");
}
}
}
Mang list2: 6 5 4 3 2 1Hàm reverse() có kiểu trả về là mảng kiểu int.
Lớp java.util.Arrays cung cấp các phương thức tĩnh (static method) cho việc sắp xếp mảng và tìm kiếm trong mảng, so sánh mảng,…
import java.util.Arrays;
class Main {
public static int[] reverse(int[] list) {
int[] result = new int[list.length];
for (int i=0, j=result.length-1; i<list.length; i++,j--) {
result[j] = list[i];
}
return result;
}
public static void main(String[] args) {
double[] numbers = {6.0, 4.4, 1.9, 2.9, 3.4, 3.5};
System.out.println("Index cua phan tu 1.9 la:" + Arrays.binarySearch(numbers, 1.9));
Arrays.sort(numbers);//sắp xếp mảng tang dan
System.out.println("Mang da sap xep tang dan:" + Arrays.toString(numbers));
}
}
Index cua phan tu 1.9 la:2
Mang da sap xep tang dan:[1.9, 2.9, 3.4, 3.5, 4.4, 6.0]