আপনি সি ++ এ কীভাবে একটি অকার্যকর ফাংশন থেকে প্রস্থান করবেন?


158

যদি কোনও শূন্য ফাংশন হয় তবে কীভাবে আপনি কোনও মান ফিরিয়ে না দিয়ে অকালবেলা থেকে ফাংশন থেকে বেরিয়ে যেতে পারেন? আমার একটি শূন্য পদ্ধতি রয়েছে যা একটি নির্দিষ্ট শর্তটি সত্য হলে এর কোডটি কার্যকর করতে হবে না। আমি আসলেই কোনও মান ফেরত দেওয়ার জন্য পদ্ধতিটি পরিবর্তন করতে চাই না।


9
এটি একটি খুব সাধারণ প্রশ্ন থাকা সত্ত্বেও, আমি উত্সাহিত করেছি কারণ আমি যখন আমার প্রথম সি প্রোগ্রামটি লিখেছিলাম তখন আমারও একই সমস্যা ছিল :)
rmeador

11
@itsbunnies: অন্য কোথাও উল্লিখিত হিসাবে, এসও-তে জিজ্ঞাসা করার মতো কোনও প্রোগ্রামিং প্রশ্ন খুব সহজ নয়। যদি আপনার এটির সাথে সমস্যা হয় তবে অতীতে অন্য কারওর যেমন ছিল এবং ভবিষ্যতে অন্য কেউও তাই হবে।
বিল

@ বিল্টলিজার্ড: প্রথম যে প্রোগ্রামে কখনও সমস্যা হয়েছিল তার কী হবে? তার অতীতে কার সমস্যা ছিল ? ;-)
flarn2006

1
আমি নিজেই এই প্রশ্নটি করেছি :)
মোল্ডওয়ান

নোট করুন আপনি সর্বদা নীচে ফিরে আসার জন্য কোনও ফাংশন পুনরায় লিখতে পারেন, এটি একটি কাঠামোগত প্রোগ্রামিং নীতি (প্রবেশের এক বিন্দু, প্রস্থানের এক বিন্দু),
ম্যালকম ম্যাকলিন

উত্তর:


195

একটি রিটার্ন বিবৃতি ব্যবহার করুন!

return;

অথবা

if (condition) return;

আপনার পদ্ধতিটি যদি ফিরে আসে তবে আপনাকে কোনও মান নির্দিষ্ট করতে (এবং করতে পারে না) দরকার নেই void


2
আরও উল্লেখযোগ্য বিষয়: আপনার পদ্ধতিটি যদি অকার্যকর হয় তবে আপনাকে অবশ্যই কোনও রিটার্ন মান নির্দিষ্ট করতে হবে না।
জোনাথন লেফলার

আহা, তাই আমরা যখন রিটার্ন লিখি; কিছু না ফেরানো মানে অকার্যকর ফিরে আসা? অকারণ মানে যাইহোক কিছুই না !! হুম আমি এখন এটি পেয়েছি।
কোয়ান্টাম 231

@ কোয়ান্টাম321 আমি মনে করি যে রিটার্নের মানটি প্রযুক্তিগতভাবে অপরিজ্ঞাত, অকার্যকর নয় তবে এটিকে "অকার্যকর" হিসাবে ভাবা দরকারী।
ডাঃ ব্যক্তি ব্যাক্তি দ্বিতীয়

@ ডাঃ পার্সনপারসনআইআই দ্বারা 'যদি আপনার পদ্ধতিটি "অকার্যকর" ফিরে আসে তবে আমি বোঝাতে চাইছি যে পদ্ধতিটির রিটার্ন টাইপের বিশুদ্ধভাবে সিনট্যাকটিকাল ভিউ রয়েছে void। প্রযুক্তিগতভাবে, পদ্ধতিটি কোনও কিছুই ফেরায় না। যা অপরিবর্তিত থেকে ভিন্ন।
মেহরদাদ আফশারি

2
প্রকৃতপক্ষে return void()আপনিও লিখতে পারেন :)
লাইটনেস রেস অরবিট

12

তুমি এইরকম বলতে চাও?

void foo ( int i ) {
    if ( i < 0 ) return; // do nothing
    // do something
}

10
void foo() {
  /* do some stuff */
  if (!condition) {
    return;
  }
}

আপনি যেমন অন্য কোনও ফাংশনে যেমন করেন ঠিক তেমন ফেরত কীওয়ার্ডটিও ব্যবহার করতে পারেন।


-1

আমি জানি প্রশ্নটি ইতিমধ্যে উত্তর পেয়েছে এবং একটি returnবিবৃতি ব্যবহার করা কাজ করে। তবে বিকল্পভাবে আপনি elseবাকীটি ifশর্তের ব্লকে অন্তর্ভুক্ত করতে পারেন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.