import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("整数を入力ã—ã¦ãã ã•ã„: ");
try {
int userInput = scanner.nextInt();
byte result = (byte) userInput;
if (userInput == result) {
System.out.println("オーãƒãƒ¼ãƒ•ãƒãƒ¼ã¾ãŸã¯ã‚¢ãƒ³ãƒ€ãƒ¼ãƒ•ãƒãƒ¼ã¯ç™ºç”Ÿã—ã¾ã›ã‚“。");
System.out.println("変æ›å¾Œã®ãƒã‚¤ãƒˆå€¤: " + result);
} else {
System.out.println("オーãƒãƒ¼ãƒ•ãƒãƒ¼ã¾ãŸã¯ã‚¢ãƒ³ãƒ€ãƒ¼ãƒ•ãƒãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚");
}
} catch (java.util.InputMismatchException e) {
System.out.println("無効ãªå…¥åŠ›ã§ã™ã€‚整数を入力ã—ã¦ãã ã•ã„。");
} finally {
scanner.close();
}
}
}
ã“ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã§ã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰æ•´æ•°ã‚’入力ã—ã€byte åž‹ã«ã‚ャストã—ã¾ã™ã€‚ãã®å¾Œã€ã‚ªãƒªã‚¸ãƒŠãƒ«ã®æ•´æ•°ã¨ã‚ャスト後ã®å€¤ã‚’比較ã—ã¦ã€ã‚ªãƒ¼ãƒãƒ¼ãƒ•ãƒãƒ¼ã¾ãŸã¯ã‚¢ãƒ³ãƒ€ãƒ¼ãƒ•ãƒãƒ¼ãŒç™ºç”Ÿã—ãŸã‹ã©ã†ã‹ã‚’確èªã—ã¾ã™ã€‚例外処ç†ã‚’使用ã—ã¦ã€ç„¡åйãªå…¥åŠ›ã‚„ã‚¨ãƒ©ãƒ¼å‡¦ç†ã‚‚行ã£ã¦ã„ã¾ã™ã€‚
オーãƒãƒ¼ãƒ•ãƒãƒ¼ã¨ã‚¢ãƒ³ãƒ€ãƒ¼ãƒ•ãƒãƒ¼
「オーãƒãƒ¼ãƒ•ãƒãƒ¼ï¼ˆOverflow)ã€ã¨ã€Œã‚¢ãƒ³ãƒ€ãƒ¼ãƒ•ãƒãƒ¼ï¼ˆUnderflow)ã€ã¯ã€ä¸»ã«æ•°å€¤åž‹ï¼ˆæ•´æ•°åž‹ã‚„æµ®å‹•å°æ•°ç‚¹åž‹ï¼‰ã®ãƒ‡ãƒ¼ã‚¿ãŒç‰¹å®šã®ç¯„囲を超ãˆãŸã‚Šæœªæº€ã«ãªã£ãŸã‚Šã—ãŸå ´åˆã«ç™ºç”Ÿã™ã‚‹å•題ã§ã™ã€‚以下ã«ãれãžã‚Œã®èª¬æ˜Žã¨å…·ä½“çš„ãªä¾‹ã‚’示ã—ã¾ã™ã€‚
オーãƒãƒ¼ãƒ•ãƒãƒ¼ï¼ˆOverflow):
オーãƒãƒ¼ãƒ•ãƒãƒ¼ã¯ã€æ•°å€¤ãŒãã®ãƒ‡ãƒ¼ã‚¿åž‹ã§è¡¨ç¾å¯èƒ½ãªæœ€å¤§å€¤ã‚’è¶…ãˆã‚‹å ´åˆã«ç™ºç”Ÿã—ã¾ã™ã€‚æ•´æ•°åž‹ã‚„æµ®å‹•å°æ•°ç‚¹åž‹ã®æœ€å¤§å€¤ã‚’è¶…ãˆãŸå ´åˆã€æ•°å€¤ã¯ãƒ©ãƒƒãƒ—アラウンドã—ã€è² ã®æœ€å°å€¤ã‹ã‚‰å†ã³å§‹ã¾ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚
オーãƒãƒ¼ãƒ•ãƒãƒ¼ã¯ãƒ—ãƒã‚°ãƒ©ãƒ ã®å®Ÿè¡Œæ™‚ã«æ„図ã—ãªã„振る舞ã„を引ãèµ·ã“ã™å¯èƒ½æ€§ãŒã‚りã€ãƒã‚°ã®åŽŸå› ã¨ãªã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚
例(整数型ã®ã‚ªãƒ¼ãƒãƒ¼ãƒ•ãƒãƒ¼ï¼‰ï¼š
int maxInt = Integer.MAX_VALUE; // intåž‹ã®æœ€å¤§å€¤
int overflowedValue = maxInt + 1; // オーãƒãƒ¼ãƒ•ãƒãƒ¼ãŒç™ºç”Ÿ
System.out.println("Overflowed Value: " + overflowedValue);
上記ã®ä¾‹ã§ã¯ã€maxInt 㯠Integer.MAX_VALUE ã§è¡¨ç¾å¯èƒ½ãªæœ€å¤§å€¤ã§ã™ã€‚ã—ã‹ã—ã€ãれより1大ããªå€¤ã‚’åŠ ç®—ã™ã‚‹ã“ã¨ã§ã‚ªãƒ¼ãƒãƒ¼ãƒ•ãƒãƒ¼ãŒç™ºç”Ÿã—ã€è² ã®æœ€å°å€¤ã«æˆ»ã‚Šã¾ã™ã€‚
アンダーフãƒãƒ¼ï¼ˆUnderflow):
アンダーフãƒãƒ¼ã¯ã€æ•°å€¤ãŒãã®ãƒ‡ãƒ¼ã‚¿åž‹ã§è¡¨ç¾å¯èƒ½ãªæœ€å°å€¤ã‚’ä¸‹å›žã‚‹å ´åˆã«ç™ºç”Ÿã—ã¾ã™ã€‚ä¸»ã«æµ®å‹•å°æ•°ç‚¹åž‹ã®å ´åˆã«è¦‹ã‚‰ã‚Œã€æœ€å°æ£ã®å€¤ã‚’下回るã“ã¨ã§æ£ã®ç„¡é™å¤§ã¾ãŸã¯ã‚¼ãƒã«è¿‘ã„éžå¸¸ã«å°ã•ãªå€¤ã«è¿‘ã¥ãã“ã¨ãŒã‚りã¾ã™ã€‚
アンダーフãƒãƒ¼ã‚‚オーãƒãƒ¼ãƒ•ãƒãƒ¼ã¨åŒæ§˜ã«ã€ãƒ—ãƒã‚°ãƒ©ãƒ ã®å®Ÿè¡Œæ™‚ã«å•題を引ãèµ·ã“ã™å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚
ä¾‹ï¼ˆæµ®å‹•å°æ•°ç‚¹åž‹ã®ã‚¢ãƒ³ãƒ€ãƒ¼ãƒ•ãƒãƒ¼ï¼‰ï¼š
float minFloat = Float.MIN_VALUE; // floatåž‹ã®æœ€å°æ£ã®å€¤
float underflowedValue = minFloat / 2; // アンダーフãƒãƒ¼ãŒç™ºç”Ÿ
System.out.println("Underflowed Value: " + underflowedValue);
上記ã®ä¾‹ã§ã¯ã€minFloat 㯠Float.MIN_VALUE ã§è¡¨ç¾å¯èƒ½ãªæœ€å°æ£ã®æµ®å‹•å°æ•°ç‚¹å€¤ã§ã™ã€‚ã—ã‹ã—ã€ãれを2ã§å‰²ã‚‹ã“ã¨ã§ã‚¢ãƒ³ãƒ€ãƒ¼ãƒ•ãƒãƒ¼ãŒç™ºç”Ÿã—ã€éžå¸¸ã«å°ã•ãªå€¤ã«è¿‘ã¥ãã¾ã™ã€‚
プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã«ãŠã„ã¦ã¯ã€ã‚ªãƒ¼ãƒãƒ¼ãƒ•ãƒãƒ¼ã¨ã‚¢ãƒ³ãƒ€ãƒ¼ãƒ•ãƒãƒ¼ã«å¯¾ã™ã‚‹é©åˆ‡ãªãƒãƒ³ãƒ‰ãƒªãƒ³ã‚°ãŒå¿…è¦ã§ã™ã€‚é©åˆ‡ãªãƒ‡ãƒ¼ã‚¿åž‹ã‚’é¸æŠžã—ã€ãƒ‡ãƒ¼ã‚¿ã®å¢ƒç•Œå€¤ã«æ³¨æ„ã—ã¦è¨ˆç®—を行ã†ã“ã¨ãŒå¤§åˆ‡ã§ã™ã€‚特ã«ã€æ•´æ•°ã‚„æµ®å‹•å°æ•°ç‚¹æ•°ã®å¢ƒç•Œå€¤ã‚’è¶…ãˆãªã„よã†ã«æ³¨æ„ã—ã¦ãƒ—ãƒã‚°ãƒ©ãƒ ã‚’è¨è¨ˆã™ã‚‹ã“ã¨ãŒè‰¯ã„プラクティスã§ã™ã€‚
「003 演算åã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント