包含java編寫doe參數優化設計的詞條

本文目錄一覽:

如何從DOE實驗設計的最佳參數最終得到一個控制範圍?

可以在進行DOE響應優化器之後進行預測分析,給定不同的參數進行結果的預測,幫助我們去確認哪個參數區間是最優的。

求解JAVA編程題:編寫一個程序,通過命令行參數方式獲得5個整數,並輸出這5個數的累加和

if (args.length!=5) {

System.out.println(“請輸入5個整數”);

System.exit(1);

}

int sum=Integer.valueOf(args[0])+Integer.valueOf(args[1])

+Integer.valueOf(args[2])+Integer.valueOf(args[3])

+Integer.valueOf(args[4]);

System.out.println(sum);

java編程:編寫應用程序,從命令行輸入兩個小數參數,求它們的商。要求程序中捕捉NumberFo

分析題目

NumberFormatException,數字格式異常,常見於由字元串轉換到數字的時候會出現

比如abc2.0–轉換成數字時,系統就會拋出這個異常。

ArithmeticException ,除0異常。這個異常常見於整數除整數,如果被除數是0,那麼會拋出這個異常。但是提示要求是小數除小數。double小數就算是0,那麼在存儲的時候也不是簡單的0,而可能是0.00000000001等情況,那麼除零異常就不會被拋出。我們可以自己手動判斷被除數是否等於0,如果等於0,那麼我們手動拋出該異常,然後進行捕獲

參考代碼一:簡潔版

import java.util.Scanner;

public class DivDemoSp {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

while(true){

try{

System.out.println(“輸入除數”);

double d1 = Double.parseDouble(sc.nextLine());

System.out.println(“輸入被除數”);

double d2 = Double.parseDouble(sc.nextLine());

if(d2==0){

throw new ArithmeticException(“捕獲到除0異常~~!!”);//手動拋出除零異常

}

double d3 = d1 / d2;

System.out.println(“計算結果:” + d1 + “/” + d2 + “=” + d3);

break;//如果能正常運行到這裡,說明前面的輸入都是正確的,所以可以跳出循環了

}catch(NumberFormatException e1){//捕獲數字格式異常

System.out.println(“捕獲到數字格式異常”);

continue;

}catch (ArithmeticException e2) {//捕獲到除零異常

System.out.println(e2.getMessage());

continue;

}

}

}

}

測試代碼

輸入除數

12

輸入被除數

捕獲到除0異常~~!!

輸入除數

12

輸入被除數

agc

捕獲到數字格式異常

輸入除數

12

輸入被除數

0.5

計算結果:12.0/0.5=24.0

參考代碼二:

public class DivDemo {

static Scanner sc = new Scanner(System.in);// 定義一個掃描器,用於讀取輸入信息

public static void main(String[] args) {// main方法

div();// 調用除法方法

}

//div方法,用於得到2個小數,並且進行除法運算,如果被除數為0.拋出除零異常

static void div() {

double d1 = getNum(“輸入   除數”);// 調用輸入數字的方法

double d2 = getNum(“輸入被除數”);

try {

if (d2 == 0) {//如果被除數等於0,那麼拋出除零異常

throw new ArithmeticException(“捕獲到除零異常!!!”);

}

double d3 = d1 / d2;

System.out.println(“計算結果:” + d1 + “/” + d2 + “=” + d3);

// div();//可以重新調用div方法,再次進行輸入

} catch (ArithmeticException exception) {//捕獲到除零異常

System.out.println(exception.getMessage());//列印出異常信息

// div();//當捕獲異常後,也可以重新調用div方法,再次進行輸入

}

}

//getNum方法,用於得到一個數字

static double getNum(String tips) {

double dnum;// 定義一個小數變數

while (true) {

try {

System.out.println(tips);// 顯示提示文字

String s1 = sc.nextLine();// 讀取輸入的一行信息

dnum = Double.parseDouble(s1);// 如果可以把輸入的信息轉換成數字就跳出循環,

// 如果無法把信息轉成數字就會報數字格式異常

break;//跳出循環

} catch (NumberFormatException exception) {//捕獲數字格式異常

System.out.println(“捕獲到了數字格式錯誤異常!!!”);//提示文字,並且繼續循環

}

}

return dnum;//返回數字

}

}

運行測試

輸入   除數

1.0

輸入被除數

捕獲到除零異常!!!

輸入   除數

1.0abc

捕獲到了數字格式錯誤異常!!!

輸入   除數

1.0

輸入被除數

0.5

計算結果:1.0/0.5=2.0

p.setLastName(“Doe”));’>java 8 新特性中p->p.setLastName(“Doe”));

這是lambda表達式,也就是匿名函數,對於

persons.forEach(p-p.setLastName(“Doe”));

這句代碼,persons是一個list,forEach是一個內部迭代的方法,p-p.setLastName(“Doe”)是一個匿名函數對象。

這個語句等價於

for (Person p : persons) {

p.setLastName(“Doe”);

}

但是用for循環是外部迭代,速度略慢。

p-p.setLastName(“Doe”)

p是指list當中取出的對象,p可以自己定義,你寫a也可以,相應的就要變成

a-a.setLastName(“Doe”)

-是lambda表達式的符號,-左邊的對象去傳入lambda函數體p.setLastName(“Doe”),是前面傳入的p去調用setLastName方法,如果要調用多個方法,那麼方法體要用花括弧包含

例如persons.forEach(p-{

p.setLastName(“Doe”)

System.out.println(p);

});

綜上所述

persons.forEach(p-p.setLastName(“Doe”));

是把p-p.setLastName(“Doe”);這個函數對象,給了persons的迭代器,讓迭代器用這個函數去對集合中的每一個對象使用

有了lambda,你可以這樣定義一個新的線程

new Thread(() – {System.out.println(“hello word!”);}).start();

() – {System.out.println(“hello word!”);}這句語句其實就是runnable介面的實現對象,

編譯器會根據函數需要實現的介面去隱式轉換,Thread的構造方法需要傳遞Runnable介面的實現類,所以new Thread(() – {System.out.println(“hello word!”);}).start();相當於

new Thread((Runnable)() – {System.out.println(“hello word!”);}).start();

其中()是匹配介面中的無參函數,因為Runnable介面中run方法為無參所以是()

-指明前面是傳入參數,後面是函數體

有了lambda就能寫出更加漂亮的代碼,以及更少的工作量,實現一個方法的介面用匿名內部類的話看起來是冗餘代碼了

純手打望採納

原創文章,作者:BDE9V,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/130745.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
BDE9V的頭像BDE9V
上一篇 2024-10-03 23:29
下一篇 2024-10-03 23:29

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • 三星內存條參數用法介紹

    本文將詳細解釋三星內存條上面的各種參數,讓你更好地了解內存條並選擇適合自己的一款。 一、容量大小 容量大小是內存條最基本的參數,一般以GB為單位表示,常見的有2GB、4GB、8GB…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論