C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: switch文


(過去ログ 56 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■31660 / inTopicNo.1)  switch文
  
□投稿者/ dorako (5回)-(2009/01/27(Tue) 02:26:13)

分類:[Java] 

入力された値が5以下の時は「入力された値は5以下です」と表示して、5以上の時は「入力された値は5以上です」と表示したいのですが
うまくいきません。
どうしたらよいでしょうか。
import java.io.*;
class sample{
    public static void main(String[] args)throws IOException{
	BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

	System.out.println("0〜10の整数を入力してください");
	int number=Integer.parseInt(br.readLine());

	switch(number){
	case number<=5:
	    System.out.println("入力された値は5以下です");	    
	    break;
	case 5<=number&&number<=10:
	    System.out.println("入力された値は5以上です");	    
	    break;
	}
    }
}

引用返信 編集キー/
■31661 / inTopicNo.2)  Re[1]: switch文
□投稿者/ yu-yu (6回)-(2009/01/27(Tue) 03:33:38)
2009/01/27(Tue) 04:31:35 編集(投稿者)
<■No31660 (dorako さん) に返信
> 入力された値が5以下の時は「入力された値は5以下です」と表示して、5以上の時は「入力された値は5以上です」と表示したいのですが
> うまくいきません。
> どうしたらよいでしょうか。
switch-case文じゃなきゃいけないですか?
if ((number >= 0) && (number <= 5)) {
    System.out.println("入力された値は5以下です");
} else if ((number > 5) && (number <= 10)) {
    System.out.println("入力された値は5より大きいです");
} else {
    System.out.println("入力された値は範囲外です");	    
}
で期待通りに動くと思います。

switch-caseなら

switch(number){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
    System.out.println("入力された値は5以下です");	    
    break;
case 6:
case 7:
case 8:
case 9:
case 10:
    System.out.println("入力された値は5以上です");	    
    break;
default:
    System.out.println("入力された値は範囲外です");	    
    break;
}

引用返信 編集キー/
■31662 / inTopicNo.3)  Re[1]: switch文
□投稿者/ yu-yu (7回)-(2009/01/27(Tue) 03:51:22)
2009/01/27(Tue) 04:11:29 編集(投稿者)

No31660 (dorako さん) に返信
書き忘れです。「以下」と「以上」の表現ですが、
「5以下」は「1〜5」の範囲が当てはまります。
「5以上10以下」は「5〜10」の範囲が当てはまります。
なので「5」が重複してしまいます。

正しくは、「5より大きくかつ10以下」と表します。
これは「6〜10」の範囲が当てはまります。

引用返信 編集キー/
■31663 / inTopicNo.4)  Re[1]: switch文
□投稿者/ επιστημη (1579回)-(2009/01/27(Tue) 05:26:15)
επιστημη さんの Web サイト
> うまくいきません。
> どうしたらよいでしょうか。

なにが/どのように「うまくいかない」かを説明してください。
「具合が悪い」の一言で薬をくれる医者はいません。

引用返信 編集キー/
■31666 / inTopicNo.5)  Re[1]: switch文
□投稿者/ .SHO (575回)-(2009/01/27(Tue) 08:57:27)
No31660 (dorako さん) に返信

> case number<=5:
> case 5<=number&&number<=10:

> 正しくは、「5より大きくかつ10以下」と表します。

日本語も間違ってるけど、ソースも同じところ間違ってます。
そもそも、switchではこんな書き方出来ないけど。
引用返信 編集キー/
■31668 / inTopicNo.6)  Re[2]: switch文
□投稿者/ επιστημη (1580回)-(2009/01/27(Tue) 09:38:16)
επιστημη さんの Web サイト
> そもそも、switchではこんな書き方出来ないけど。

なのでコンパイル・エラーよね。
だったらエラー・メッセージが出力されたはず。

なにが起こったか明らかなのに「うまくいきません」
の一言で済ますのはズボラもいいとこ。

引用返信 編集キー/
■31670 / inTopicNo.7)  Re[3]: switch文
□投稿者/ .SHO (576回)-(2009/01/27(Tue) 09:52:29)
> なにが起こったか明らかなのに「うまくいきません」
> の一言で済ますのはズボラもいいとこ。

ですね。
まぁ、この状況で掲示板に質問書く方がよっぽど面倒くさいとも言える。

引用返信 編集キー/
■31672 / inTopicNo.8)  Re[2]: switch文
□投稿者/ dorako (7回)-(2009/01/27(Tue) 10:22:12)
No31661 (yu-yu さん) に返信
> 2009/01/27(Tue) 04:31:35 編集(投稿者)
>
とてもよくわかりました。
ありがとうございます。
解決済み
引用返信 編集キー/
■31675 / inTopicNo.9)  Re[3]: switch文
□投稿者/ yu-yu (8回)-(2009/01/27(Tue) 11:03:38)
No31672 (dorako さん) に返信
> とてもよくわかりました。
> ありがとうございます。
try-catchも書かないとコンパイルできないと思いますよー。

解決済み
引用返信 編集キー/
■31719 / inTopicNo.10)  Re[4]: switch文
□投稿者/ επιστημη (1588回)-(2009/01/28(Wed) 09:57:04)
επιστημη さんの Web サイト
> try-catchも書かないとコンパイルできないと思いますよー。

public static void main(String[] args) throws IOException
                                       ^^^^^^^^^^^^^^^^^^
                                       だそうです ^^;

解決済み
引用返信 編集キー/
■31720 / inTopicNo.11)  Re[5]: switch文
□投稿者/ yu-yu (9回)-(2009/01/28(Wed) 10:10:18)
No31719 (επιστημη さん) に返信
> > try-catchも書かないとコンパイルできないと思いますよー。
>
> public static void main(String[] args) throws IOException
> ^^^^^^^^^^^^^^^^^^
> だそうです ^^;
あら、ほんとだ。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -